1import { $featuredPatterns, $publicPatterns, patternFilterName } from '../user_pattern_utils.mjs'; 2import { useStore } from '@nanostores/react'; 3import { useMemo } from 'react'; 4import * as tunes from '../repl/tunes.mjs'; 5 6export const stockPatterns = Object.fromEntries( 7 Object.entries(tunes).map(([key, code], i) => [i, { id: i, code, collection: 'Stock Examples' }]), 8); 9 10export const useExamplePatterns = () => { 11 const featuredPatterns = useStore($featuredPatterns); 12 const publicPatterns = useStore($publicPatterns); 13 const collections = useMemo(() => { 14 const pats = new Map(); 15 pats.set(patternFilterName.featured, featuredPatterns); 16 pats.set(patternFilterName.public, publicPatterns); 17 // pats.set(patternFilterName.stock, stockPatterns); 18 return pats; 19 }, [featuredPatterns, publicPatterns]); 20 21 const patterns = useMemo(() => { 22 return Object.assign({}, ...collections.values()); 23 }, [collections]); 24 25 return { patterns, collections }; 26};