mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
started editor
This commit is contained in:
parent
203791b170
commit
ee17b72a7f
4 changed files with 49 additions and 13 deletions
15
src/components/editors/ImageEditor/index.tsx
Normal file
15
src/components/editors/ImageEditor/index.tsx
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
import React, { FC } from 'react';
|
||||||
|
import { INode } from '~/redux/types';
|
||||||
|
import * as styles from './styles.scss';
|
||||||
|
|
||||||
|
interface IProps {
|
||||||
|
data: INode,
|
||||||
|
setData: (val: INode) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
const ImageEditor: FC<IProps> = ({
|
||||||
|
}) => (
|
||||||
|
<div className={styles.uploads} />
|
||||||
|
)
|
||||||
|
|
||||||
|
export { ImageEditor };
|
3
src/components/editors/ImageEditor/styles.scss
Normal file
3
src/components/editors/ImageEditor/styles.scss
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.uploads {
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC, useState, useCallback } from 'react';
|
||||||
import { ScrollDialog } from '../ScrollDialog';
|
import { ScrollDialog } from '../ScrollDialog';
|
||||||
import { IDialogProps } from '~/redux/modal/constants';
|
import { IDialogProps } from '~/redux/modal/constants';
|
||||||
import { useCloseOnEscape } from '~/utils/hooks';
|
import { useCloseOnEscape } from '~/utils/hooks';
|
||||||
|
@ -6,22 +6,26 @@ import { Group } from '~/components/containers/Group';
|
||||||
import { InputText } from '~/components/input/InputText';
|
import { InputText } from '~/components/input/InputText';
|
||||||
import { Button } from '../../../components/input/Button/index';
|
import { Button } from '../../../components/input/Button/index';
|
||||||
import { Padder } from '~/components/containers/Padder';
|
import { Padder } from '~/components/containers/Padder';
|
||||||
import * as styles from '~/containers/examples/HorizontalExample/styles.scss';
|
import * as styles from './styles.scss';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { selectNode } from '~/redux/node/selectors';
|
import { selectNode } from '~/redux/node/selectors';
|
||||||
|
import { ImageEditor } from '~/components/editors/ImageEditor';
|
||||||
|
|
||||||
const mapStateToProps = selectNode;
|
const mapStateToProps = selectNode;
|
||||||
const mapDispatchToProps = {};
|
const mapDispatchToProps = {};
|
||||||
|
|
||||||
type IProps = IDialogProps & {};
|
type IProps = IDialogProps & ReturnType<typeof mapStateToProps> & typeof mapDispatchToProps & {};
|
||||||
|
|
||||||
const EditorDialogUnconnected: FC<IProps> = ({ onRequestClose }) => {
|
const EditorDialogUnconnected: FC<IProps> = ({ onRequestClose, editor }) => {
|
||||||
const title = <div>title</div>;
|
const [data, setData] = useState(editor);
|
||||||
|
const setTitle = useCallback(title => {
|
||||||
|
setData({ ...data, title });
|
||||||
|
}, [setData, data]);
|
||||||
|
|
||||||
const buttons = (
|
const buttons = (
|
||||||
<Padder>
|
<Padder>
|
||||||
<Group horizontal>
|
<Group horizontal>
|
||||||
<InputText title="Название" />
|
<InputText title="Название" value={data.title} handler={setTitle} />
|
||||||
|
|
||||||
<Button title="Сохранить" iconRight="check" />
|
<Button title="Сохранить" iconRight="check" />
|
||||||
</Group>
|
</Group>
|
||||||
|
@ -32,13 +36,11 @@ const EditorDialogUnconnected: FC<IProps> = ({ onRequestClose }) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollDialog buttons={buttons} width={860}>
|
<ScrollDialog buttons={buttons} width={860}>
|
||||||
<div className={styles.uploads}>
|
<div className={styles.editor}>
|
||||||
<div className={styles.cell} />
|
<ImageEditor
|
||||||
<div className={styles.cell} />
|
data={data}
|
||||||
<div className={styles.cell} />
|
setData={setData}
|
||||||
<div className={styles.cell} />
|
/>
|
||||||
<div className={styles.cell} />
|
|
||||||
<div className={styles.cell} />
|
|
||||||
</div>
|
</div>
|
||||||
</ScrollDialog>
|
</ScrollDialog>
|
||||||
);
|
);
|
||||||
|
|
16
src/containers/dialogs/EditorDialog/styles.scss
Normal file
16
src/containers/dialogs/EditorDialog/styles.scss
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
.editor {
|
||||||
|
flex: 1;
|
||||||
|
padding: $gap;
|
||||||
|
// padding-bottom: 0;
|
||||||
|
display: grid;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
grid-column-gap: $gap;
|
||||||
|
grid-row-gap: $gap;
|
||||||
|
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(30vw, 1fr));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue