66 FINDER_PATTERN_INNER_SIZE ,
77 FINDER_PATTERN_OUTER_ROTATIONS ,
88 FINDER_PATTERN_SIZE ,
9+ GRADIENT_ID ,
910} from '../constants'
1011import type { FinderPatternsInnerProps } from '../types/utils'
1112import {
@@ -19,11 +20,13 @@ export const FinderPatternsInner = ({
1920 modules,
2021 margin,
2122 settings,
23+ gradient,
2224} : FinderPatternsInnerProps ) : ReactNode => {
2325 const { color, style } = useMemo (
2426 ( ) => sanitizeFinderPatternInnerSettings ( settings ) ,
2527 [ settings ] ,
2628 )
29+ const fill = gradient ? `url(#${ GRADIENT_ID } )` : color
2730
2831 const coordinates = useMemo (
2932 ( ) => [
@@ -52,7 +55,7 @@ export const FinderPatternsInner = ({
5255 y = { y }
5356 width = { FINDER_PATTERN_INNER_SIZE }
5457 height = { FINDER_PATTERN_INNER_SIZE }
55- fill = { color }
58+ fill = { fill }
5659 rx = { FINDER_PATTERN_INNER_RADIUSES [ style ] }
5760 />
5861 )
@@ -72,7 +75,7 @@ export const FinderPatternsInner = ({
7275 y = { y + posDiff / 2 }
7376 width = { size }
7477 height = { size }
75- fill = { color }
78+ fill = { fill }
7679 style = { {
7780 transform : `rotate(${ 45 } deg)` ,
7881 transformOrigin : 'center' ,
@@ -112,7 +115,7 @@ export const FinderPatternsInner = ({
112115 return (
113116 < path
114117 key = { key ( x , y ) }
115- fill = { color }
118+ fill = { fill }
116119 d = { path }
117120 style = { {
118121 transform : `rotate(${ rotation } deg)` ,
@@ -127,7 +130,7 @@ export const FinderPatternsInner = ({
127130 if ( style === 'heart' ) {
128131 return coordinates . map ( ( { x, y } ) => {
129132 return (
130- < path key = { key ( x , y ) } fill = { color } d = { heart ( x , y , FINDER_PATTERN_INNER_SIZE ) } />
133+ < path key = { key ( x , y ) } fill = { fill } d = { heart ( x , y , FINDER_PATTERN_INNER_SIZE ) } />
131134 )
132135 } )
133136 }
@@ -137,7 +140,7 @@ export const FinderPatternsInner = ({
137140 const cx = x + FINDER_PATTERN_INNER_SIZE / 2
138141 const cy = y + FINDER_PATTERN_INNER_SIZE / 2
139142 const path = star ( cx , cy , FINDER_PATTERN_INNER_SIZE * 1.2 , DEFAULT_NUM_STAR_POINTS )
140- return < path key = { key ( x , y ) } fill = { color } d = { path } />
143+ return < path key = { key ( x , y ) } fill = { fill } d = { path } />
141144 } )
142145 }
143146
0 commit comments