@@ -83,29 +83,39 @@ const ItemTemplate = React.memo((props: ItemTemplateProps) => {
83
83
) ;
84
84
} ) ;
85
85
86
- const Shortcuts = ( ) => {
86
+ const printItemText = ( item : ShortcutsItem ) => {
87
+ return item . text ?? null ;
88
+ } ;
89
+
90
+ const Shortcuts : React . FC = ( ) => {
87
91
// Contexts
88
92
const { configs } = useContext ( DatepickerContext ) ;
89
93
90
94
const callPastFunction = ( data : unknown , numberValue : number ) => {
91
95
return typeof data === "function" ? data ( numberValue ) : null ;
92
96
} ;
93
97
94
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
95
- // @ts -ignore
96
- const printItemText = item => {
97
- return "text" in item ? item . text : "" ;
98
- } ;
98
+ const shortcutOptions = configs
99
+ ? Object . entries ( DEFAULT_SHORTCUTS ) . filter ( ( [ key ] ) => {
100
+ return configs . shortcuts
101
+ ? Object . keys ( configs . shortcuts ) . includes ( key ) &&
102
+ configs . shortcuts [ key as keyof typeof configs . shortcuts ]
103
+ : true ;
104
+ } )
105
+ : Object . entries ( DEFAULT_SHORTCUTS ) ;
99
106
100
107
return (
101
108
< div className = "md:border-b mb-3 lg:mb-0 lg:border-r lg:border-b-0 border-gray-300 dark:border-gray-700 pr-1" >
102
109
< ul className = "w-full tracking-wide flex flex-wrap lg:flex-col pb-1 lg:pb-0" >
103
- { Object . entries ( DEFAULT_SHORTCUTS ) . map ( ( [ key , item ] , index ) =>
104
- key === "past" ? (
105
- ( Array . isArray ( item ) ? item : [ ] ) . map ( ( item , index ) => (
110
+ { shortcutOptions . map ( ( [ key , item ] , index ) =>
111
+ Array . isArray ( item ) ? (
112
+ item . map ( ( item , index ) => (
106
113
< ItemTemplate key = { index } item = { item } >
107
114
< >
108
- { configs && configs . shortcuts && key in configs . shortcuts
115
+ { key === "past" &&
116
+ configs ?. shortcuts &&
117
+ key in configs . shortcuts &&
118
+ item . daysNumber
109
119
? callPastFunction ( configs . shortcuts [ key ] , item . daysNumber )
110
120
: item . text }
111
121
</ >
@@ -114,7 +124,7 @@ const Shortcuts = () => {
114
124
) : (
115
125
< ItemTemplate key = { index } item = { item } >
116
126
< >
117
- { configs && configs . shortcuts && key in configs . shortcuts
127
+ { configs ? .shortcuts && key in configs . shortcuts
118
128
? configs . shortcuts [ key as keyof typeof configs . shortcuts ]
119
129
: printItemText ( item ) }
120
130
</ >
0 commit comments