packages-fetcher/fetcher-interceptor-merger/stories/merger-storage/index.tsx (26 lines of code) (raw):

import React, { useState, useCallback } from 'react'; import { H1, PreJson, Button } from '@alicloud/demo-rc-elements'; import storage from '../../src/util/merger/_storage'; import remove from '../../src/util/merger/remove'; export default function CacheStorage(): JSX.Element { const [stateCacheStorage, setStateCacheStorage] = useState<Record<string, unknown>>(storage()); const handleRefreshCacheStorage = useCallback(() => setStateCacheStorage({ ...storage() }), []); const handleCleanup = useCallback(() => { Object.keys(storage()).forEach(remove); handleRefreshCacheStorage(); }, [handleRefreshCacheStorage]); return <> <H1>merger storage - 仅 demo 下可用(不 export)</H1> <Button onClick={handleRefreshCacheStorage}>手动刷新</Button> <Button onClick={handleCleanup}>手动清空</Button> <PreJson o={stateCacheStorage} /> </>; }