@@ -28,13 +28,15 @@ export function Match<
2828 on : T | null | undefined ,
2929 tag : Tag ,
3030 case : { [ K in T [ Tag ] ] : ( v : Accessor < T & { [ k in Tag ] : K } > ) => JSX . Element } ,
31+ fallback ?: JSX . Element ,
3132 partial ?: false ,
3233} ) : JSX . Element
3334export function Match <
3435 T extends { kind : PropertyKey } ,
3536> ( props : {
3637 on : T | null | undefined ,
3738 case : { [ K in T [ 'kind' ] ] : ( v : Accessor < T & { [ k in 'kind' ] : K } > ) => JSX . Element } ,
39+ fallback ?: JSX . Element ,
3840 partial ?: false ,
3941} ) : JSX . Element
4042export function Match <
@@ -44,16 +46,18 @@ export function Match<
4446 on : T | null | undefined ,
4547 tag : Tag ,
4648 case : { [ K in T [ Tag ] ] ?: ( v : Accessor < T & { [ k in Tag ] : K } > ) => JSX . Element } ,
49+ fallback ?: JSX . Element ,
4750 partial : true ,
4851} ) : JSX . Element
4952export function Match <
5053 T extends { kind : PropertyKey } ,
5154> ( props : {
5255 on : T | null | undefined ,
5356 case : { [ K in T [ 'kind' ] ] ?: ( v : Accessor < T & { [ k in 'kind' ] : K } > ) => JSX . Element } ,
57+ fallback ?: JSX . Element ,
5458 partial : true ,
5559} ) : JSX . Element
5660export function Match ( props : any ) : any {
5761 const kind = createMemo ( ( ) => props . on ?. [ props . tag ?? 'kind' ] )
58- return createMemo ( ( ) => props . case [ kind ( ) ] ?.( ( ) => props . on ) )
62+ return createMemo ( ( ) => props . case [ kind ( ) ] ?.( ( ) => props . on ) ?? props . fallback )
5963}
0 commit comments