@@ -3,6 +3,7 @@ import {useRequireAnchor} from './RequireAnchorContext'
33import { useRequireJpCoats } from './RequireJpCoatsContext'
44import dmcNamedColorCodes from './assets/dmc-color-codes-names.json'
55import dmcNewJpCoatsColors from './assets/dmc-old-new-jp-coats-colors.json'
6+ import dmcCosmoColors from './assets/dmc-cosmo-colors.json'
67import { colorCompareFunction , normalizeDmcCode } from './utils'
78import type { EmbroideryFlossColor } from './types'
89import { useSort } from './SortContext'
@@ -13,7 +14,7 @@ interface Colors {
1314
1415const ColorsContext = createContext < Colors | undefined > ( undefined )
1516
16- export const ColorsProvider = ( { children} : PropsWithChildren ) => {
17+ export function ColorsProvider ( { children} : PropsWithChildren ) {
1718 const { requireAnchor} = useRequireAnchor ( )
1819 const { requireJpCoats} = useRequireJpCoats ( )
1920 const { sortOption} = useSort ( )
@@ -28,8 +29,14 @@ export const ColorsProvider = ({children}: PropsWithChildren) => {
2829 result [ key ] = { ...result [ key ] , ...data }
2930 }
3031 } )
32+ dmcCosmoColors . forEach ( data => {
33+ const key = normalizeDmcCode ( data . dmcCode )
34+ if ( result [ key ] ) {
35+ result [ key ] = { ...result [ key ] , ...data }
36+ }
37+ } )
3138 return result
32- } , [ dmcNamedColorCodes , dmcNewJpCoatsColors ] )
39+ } , [ ] )
3340 const colors = useMemo < EmbroideryFlossColor [ ] > (
3441 ( ) => Object . values ( dataByDmcCode ) ,
3542 [ dataByDmcCode ]
@@ -59,7 +66,7 @@ export const ColorsProvider = ({children}: PropsWithChildren) => {
5966 )
6067}
6168
62- export const useColors = ( ) => {
69+ export function useColors ( ) {
6370 const context = useContext ( ColorsContext )
6471 if ( context === undefined ) {
6572 throw new Error ( 'useColors must be used within a ColorsProvider' )
0 commit comments