@@ -22,6 +22,7 @@ const MaterialDropzone: React.FunctionComponent<DropzoneProps> = props => {
22
22
const [ file , setFile ] = React . useState < File | undefined > ( undefined ) ;
23
23
const [ isWarningShown , setPromptShown ] = React . useState < boolean > ( false ) ;
24
24
const [ forceUpdate , setForceUpdate ] = React . useState < boolean > ( false ) ;
25
+ const [ hasTokenCounter , setHasTokenCounter ] = React . useState < boolean > ( false ) ;
25
26
const [ assessmentConfigId , setAssessmentConfigId ] = React . useState < number > ( - 1 ) ;
26
27
27
28
React . useEffect ( ( ) => {
@@ -83,21 +84,21 @@ const MaterialDropzone: React.FunctionComponent<DropzoneProps> = props => {
83
84
) ;
84
85
} , [ isFocused , isDragActive , isDragAccept , isDragReject ] ) ;
85
86
86
- const handleSwitchOnChange = React . useCallback ( ( ) => {
87
+ const handleForceUpdateSwitchOnChange = React . useCallback ( ( ) => {
87
88
if ( ! forceUpdate ) {
88
89
setPromptShown ( true ) ;
89
90
} else {
90
91
setForceUpdate ( false ) ;
91
92
}
92
93
} , [ forceUpdate , setPromptShown , setForceUpdate ] ) ;
93
94
94
- const toggleButton = React . useMemo (
95
+ const forceUpdateToggleButton = React . useMemo (
95
96
( ) => (
96
97
< div className = "toggle-button-wrapper" >
97
- < Switch checked = { forceUpdate } onChange = { handleSwitchOnChange } />
98
+ < Switch checked = { forceUpdate } onChange = { handleForceUpdateSwitchOnChange } />
98
99
</ div >
99
100
) ,
100
- [ forceUpdate , handleSwitchOnChange ]
101
+ [ forceUpdate , handleForceUpdateSwitchOnChange ]
101
102
) ;
102
103
103
104
const handleConfirmForceUpdate = React . useCallback ( ( ) => {
@@ -108,6 +109,23 @@ const MaterialDropzone: React.FunctionComponent<DropzoneProps> = props => {
108
109
setPromptShown ( false ) ;
109
110
} , [ setPromptShown ] ) ;
110
111
112
+ const handleHasTokenCounterSwitchOnChange = React . useCallback ( ( ) => {
113
+ if ( ! hasTokenCounter ) {
114
+ setHasTokenCounter ( true ) ;
115
+ } else {
116
+ setHasTokenCounter ( false ) ;
117
+ }
118
+ } , [ hasTokenCounter , setHasTokenCounter ] ) ;
119
+
120
+ const tokenCounterToggleButton = React . useMemo (
121
+ ( ) => (
122
+ < div className = "toggle-button-wrapper" >
123
+ < Switch checked = { hasTokenCounter } onChange = { handleHasTokenCounterSwitchOnChange } />
124
+ </ div >
125
+ ) ,
126
+ [ hasTokenCounter , handleHasTokenCounterSwitchOnChange ]
127
+ ) ;
128
+
111
129
const confirmationPrompt = React . useMemo (
112
130
( ) => (
113
131
< div className = "dropzone-controls" >
@@ -160,9 +178,15 @@ const MaterialDropzone: React.FunctionComponent<DropzoneProps> = props => {
160
178
options = { { minimal : false } }
161
179
/>
162
180
</ div >
163
- < div className = "dropzone-controls" >
164
- < p > Force update opened assessment</ p >
165
- { toggleButton }
181
+ < div className = "toggle-buttons" >
182
+ < div className = "dropzone-controls" >
183
+ < p > Force update opened assessment</ p >
184
+ { forceUpdateToggleButton }
185
+ </ div >
186
+ < div className = "dropzone-controls" >
187
+ < p > Enable token counter notification </ p >
188
+ { tokenCounterToggleButton }
189
+ </ div >
166
190
</ div >
167
191
</ >
168
192
) }
0 commit comments