Skip to content

Commit

Permalink
PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
miina committed Jan 5, 2023
1 parent bc3dc68 commit fba8475
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 31 deletions.
1 change: 0 additions & 1 deletion packages/design-system/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"src/types/*",
"src/types.ts",
"src/utils/*.ts",
"src/utils/*.tsx",
"src/utils/constants.ts",
"src/utils/localStore.ts",
"src/utils/sessionStore.ts"
Expand Down
46 changes: 22 additions & 24 deletions packages/story-editor/src/app/pageDataUrls/pageDataUrlsProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,39 +25,37 @@ import type { PropsWithChildren } from 'react';
*/
import useIdleTaskQueue from '../../utils/useIdleTaskQueue';
import storyPageToDataUrl from '../pageCanvas/utils/storyPageToDataUrl';
import type { PageDataUrlsState, PageDataUrlsActions } from '../../types';
import type { PageDataUrls, QueuePageImageGeneration } from '../../types';
import Context from './context';

function PageDataUrlProvider({ children }: PropsWithChildren<unknown>) {
const [dataUrls, setDataUrls] = useState<PageDataUrlsState['dataUrls']>({});
const [dataUrls, setDataUrls] = useState<PageDataUrls>({});
const queueIdleTask = useIdleTaskQueue();

/**
* Add page image generation task to a idle task
* queue.
*/
const queuePageImageGeneration: PageDataUrlsActions['queuePageImageGeneration'] =
useCallback(
(storyPage: Page) => {
const idleTaskUid: string = storyPage.id;
const idleTask: () => Promise<void> = async () => {
const dataUrl = await storyPageToDataUrl(storyPage, {});
setDataUrls((state) => ({
...state,
[storyPage?.id]: dataUrl,
}));
};
const queuePageImageGeneration: QueuePageImageGeneration = useCallback(
(storyPage: Page) => {
const idleTaskUid: string = storyPage.id;
const idleTask: () => Promise<void> = async () => {
const dataUrl = await storyPageToDataUrl(storyPage, {});
setDataUrls((state) => ({
...state,
[storyPage?.id]: dataUrl,
}));
};

const clearQueueOfPageTask = queueIdleTask({
taskId: idleTaskUid,
task: idleTask,
});
return () => {
clearQueueOfPageTask();
};
},
[queueIdleTask]
);
const clearQueueOfPageTask = queueIdleTask({
taskId: idleTaskUid,
task: idleTask,
});
return () => {
clearQueueOfPageTask();
};
},
[queueIdleTask]
);

const value = useMemo(
() => ({
Expand Down
12 changes: 6 additions & 6 deletions packages/story-editor/src/types/pageDataUrls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@
*/
import type { Page } from '@googleforcreators/elements';

export interface PageDataUrlsState {
dataUrls: Record<string, string>;
}

export interface PageDataUrlsActions {
queuePageImageGeneration: (Page: Page) => void;
}

export type PageDataUrls = Record<string, string>;

export type QueuePageImageGeneration = (page: Page) => void;

export interface PageDataUrlsContext {
state: PageDataUrlsState;
actions: PageDataUrlsActions;
state: { dataUrls: PageDataUrls };
actions: { queuePageImageGeneration: QueuePageImageGeneration };
}

0 comments on commit fba8475

Please sign in to comment.