From d6924c0088043f7bbc47406bd630e93d260bf0bd Mon Sep 17 00:00:00 2001 From: Ken Powers Date: Wed, 29 Apr 2020 17:58:05 -0400 Subject: [PATCH] Use bindActionCreators in StickerCreator --- sticker-creator/app/stages/ShareStage.tsx | 10 +++--- sticker-creator/app/stages/UploadStage.tsx | 14 ++++++-- sticker-creator/components/StickerGrid.tsx | 4 ++- sticker-creator/store/ducks/stickers.ts | 38 ++++++++++++---------- 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/sticker-creator/app/stages/ShareStage.tsx b/sticker-creator/app/stages/ShareStage.tsx index 2bf899193a..5c8459e0d5 100644 --- a/sticker-creator/app/stages/ShareStage.tsx +++ b/sticker-creator/app/stages/ShareStage.tsx @@ -20,10 +20,12 @@ export const ShareStage = () => { const images = stickersDuck.useOrderedImagePaths(); const shareUrl = stickersDuck.usePackUrl(); const [linkCopied, setLinkCopied] = React.useState(false); - const onCopy = React.useCallback(() => setLinkCopied(true), [setLinkCopied]); - const resetLinkCopied = React.useCallback(() => setLinkCopied(false), [ - setLinkCopied, - ]); + const onCopy = React.useCallback(() => { + setLinkCopied(true); + }, [setLinkCopied]); + const resetLinkCopied = React.useCallback(() => { + setLinkCopied(false); + }, [setLinkCopied]); const handleNext = React.useCallback(() => { window.close(); diff --git a/sticker-creator/app/stages/UploadStage.tsx b/sticker-creator/app/stages/UploadStage.tsx index f87f03774b..dae7af99d4 100644 --- a/sticker-creator/app/stages/UploadStage.tsx +++ b/sticker-creator/app/stages/UploadStage.tsx @@ -11,7 +11,9 @@ import { encryptAndUpload } from '../../util/preload'; import { useI18n } from '../../util/i18n'; import { Toaster } from '../../components/Toaster'; -const handleCancel = () => history.push('/add-meta'); +const handleCancel = () => { + history.push('/add-meta'); +}; export const UploadStage = () => { const i18n = useI18n(); @@ -24,8 +26,11 @@ export const UploadStage = () => { const [complete, setComplete] = React.useState(0); React.useEffect(() => { + // tslint:disable-next-line: no-floating-promises (async () => { - const onProgress = () => setComplete(i => i + 1); + const onProgress = () => { + setComplete(i => i + 1); + }; try { const packMeta = await encryptAndUpload( { title, author }, @@ -36,7 +41,10 @@ export const UploadStage = () => { actions.setPackMeta(packMeta); history.push('/share'); } catch (e) { - actions.addToast('StickerCreator--Toasts--errorUploading', [e.message]); + actions.addToast({ + key: 'StickerCreator--Toasts--errorUploading', + subs: [e.message], + }); history.push('/add-meta'); } })(); diff --git a/sticker-creator/components/StickerGrid.tsx b/sticker-creator/components/StickerGrid.tsx index 35802a6080..f62082878e 100644 --- a/sticker-creator/components/StickerGrid.tsx +++ b/sticker-creator/components/StickerGrid.tsx @@ -59,7 +59,9 @@ const InnerGrid = SortableContainer( // @ts-ignore window.log.error('Error processing image:', e); actions.removeSticker(path); - actions.addToast('StickerCreator--Toasts--errorProcessing'); + actions.addToast({ + key: 'StickerCreator--Toasts--errorProcessing', + }); } }); }); diff --git a/sticker-creator/store/ducks/stickers.ts b/sticker-creator/store/ducks/stickers.ts index f55a771f98..aacdf0bbe3 100644 --- a/sticker-creator/store/ducks/stickers.ts +++ b/sticker-creator/store/ducks/stickers.ts @@ -11,6 +11,7 @@ import { useDispatch, useSelector } from 'react-redux'; import { createSelector } from 'reselect'; import { clamp, find, isNumber, pull, remove, take, uniq } from 'lodash'; import { SortEnd } from 'react-sortable-hoc'; +import { bindActionCreators } from 'redux'; import arrayMove from 'array-move'; import { AppState } from '../reducer'; import { PackMetaData, WebpData } from '../../util/preload'; @@ -268,24 +269,25 @@ export const useStickerActions = () => { const dispatch = useDispatch(); return useMemo( - () => ({ - addWebp: (data: WebpData) => dispatch(addWebp(data)), - initializeStickers: (paths: Array) => - dispatch(initializeStickers(paths)), - removeSticker: (src: string) => dispatch(removeSticker(src)), - moveSticker: (sortEnd: SortEnd) => dispatch(moveSticker(sortEnd)), - setCover: (webp: WebpData) => dispatch(setCover(webp)), - setEmoji: (p: { id: string; emoji: EmojiPickDataType }) => - dispatch(setEmoji(p)), - setTitle: (title: string) => dispatch(setTitle(title)), - setAuthor: (author: string) => dispatch(setAuthor(author)), - setPackMeta: (e: PackMetaData) => dispatch(setPackMeta(e)), - addToast: (key: string, subs?: Array) => - dispatch(addToast({ key, subs })), - dismissToast: () => dispatch(dismissToast()), - reset: () => dispatch(reset()), - resetStatus: () => dispatch(resetStatus()), - }), + () => + bindActionCreators( + { + addWebp, + initializeStickers, + removeSticker, + moveSticker, + setCover, + setEmoji, + setTitle, + setAuthor, + setPackMeta, + addToast, + dismissToast, + reset, + resetStatus, + }, + dispatch + ), [dispatch] ); };