import * as React from 'react'; import { FileWithPath } from 'react-dropzone'; import { AppStage } from './AppStage'; import * as styles from './MetaStage.scss'; import { processStickerImage } from '../../util/preload'; import { useStickerDropzone } from '../../util/useStickerDropzone'; import { history } from '../../util/history'; import { H2, Text } from '../../elements/Typography'; import { LabeledInput } from '../../elements/LabeledInput'; import { ConfirmModal } from '../../components/ConfirmModal'; import { stickersDuck } from '../../store'; import { useI18n } from '../../util/i18n'; export const MetaStage: React.ComponentType = () => { const i18n = useI18n(); const actions = stickersDuck.useStickerActions(); const valid = stickersDuck.useAllDataValid(); const cover = stickersDuck.useCover(); const title = stickersDuck.useTitle(); const author = stickersDuck.useAuthor(); const [confirming, setConfirming] = React.useState(false); const onDrop = React.useCallback( async ([{ path }]: Array) => { try { const stickerImage = await processStickerImage(path); actions.setCover(stickerImage); } catch (e) { actions.removeSticker(path); } }, [actions] ); const { getRootProps, getInputProps, isDragActive } = useStickerDropzone( onDrop ); const onNext = React.useCallback(() => { setConfirming(true); }, [setConfirming]); const onCancel = React.useCallback(() => { setConfirming(false); }, [setConfirming]); const onConfirm = React.useCallback(() => { history.push('/upload'); }, []); const coverFrameClass = isDragActive ? styles.coverFrameActive : styles.coverFrame; return ( {confirming ? ( {i18n('StickerCreator--MetaStage--ConfirmDialog--text')} ) : null}

{i18n('StickerCreator--MetaStage--title')}

{i18n('StickerCreator--MetaStage--Field--title')}
{i18n('StickerCreator--MetaStage--Field--author')}

{i18n('StickerCreator--MetaStage--Field--cover')}

{i18n('StickerCreator--MetaStage--Field--cover--help')}
{cover.src ? ( Cover ) : null}
); };