@@ -28,18 +28,21 @@ import {
28
28
Categorization ,
29
29
deriveLabelForUISchemaElement ,
30
30
Translator ,
31
+ isVisible ,
31
32
} from '@jsonforms/core' ;
32
33
import { isCategorization } from './tester' ;
34
+ import { AjvProps } from '../../util' ;
33
35
34
36
const getCategoryClassName = (
35
37
category : Category ,
36
38
selectedCategory : Category
37
39
) : string => ( selectedCategory === category ? 'selected' : '' ) ;
38
40
39
41
export interface CategorizationProps {
40
- filteredCategorization : ( Category | Categorization ) [ ] ;
42
+ elements : ( Category | Categorization ) [ ] ;
41
43
selectedCategory : Category ;
42
44
depth : number ;
45
+ data : any ;
43
46
onSelect : any ;
44
47
subcategoriesClassName : string ;
45
48
groupClassName : string ;
@@ -48,31 +51,38 @@ export interface CategorizationProps {
48
51
49
52
export const CategorizationList = ( {
50
53
selectedCategory,
51
- filteredCategorization,
54
+ elements,
55
+ data,
52
56
depth,
53
57
onSelect,
54
58
subcategoriesClassName,
55
59
groupClassName,
56
60
t,
57
- } : CategorizationProps ) => {
61
+ ajv,
62
+ } : CategorizationProps & AjvProps ) => {
63
+ const filteredElements = elements . filter (
64
+ ( category : Category | Categorization ) => {
65
+ isVisible ( category , data , undefined , ajv ) ;
66
+ }
67
+ ) ;
68
+
58
69
const categoryLabels = useMemo (
59
- ( ) =>
60
- filteredCategorization . map ( ( cat ) =>
61
- deriveLabelForUISchemaElement ( cat , t )
62
- ) ,
63
- [ filteredCategorization , t ]
70
+ ( ) => filteredElements . map ( ( cat ) => deriveLabelForUISchemaElement ( cat , t ) ) ,
71
+ [ filteredElements , t ]
64
72
) ;
65
73
66
74
return (
67
75
< ul className = { subcategoriesClassName } >
68
- { filteredCategorization . map ( ( category , idx ) => {
76
+ { filteredElements . map ( ( category , idx ) => {
69
77
if ( isCategorization ( category ) ) {
70
78
return (
71
79
< li key = { categoryLabels [ idx ] } className = { groupClassName } >
72
80
< span > { categoryLabels [ idx ] } </ span >
73
81
< CategorizationList
74
82
selectedCategory = { selectedCategory }
75
- filteredCategorization = { category . elements }
83
+ elements = { category . elements }
84
+ data = { data }
85
+ ajv = { ajv }
76
86
depth = { depth + 1 }
77
87
onSelect = { onSelect }
78
88
subcategoriesClassName = { subcategoriesClassName }
0 commit comments