Skip to content

Commit bf1c37f

Browse files
committed
Update use-display-feedback.ts
1 parent 054c97c commit bf1c37f

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import { __ } from '@wpsocio/i18n';
21
import { useGlobalNotices } from '@wpsocio/ui/wp/global-notices';
32
import { FORM_ERROR } from '@wpsocio/utilities/constants.js';
43
import { getErrorStrings } from '@wpsocio/utilities/misc.js';
54
import type { AnyObject } from '@wpsocio/utilities/types.js';
65
import { useCallback, useMemo } from 'react';
76

87
interface DisplayFeedback {
8+
clearNotices: VoidFunction;
99
displayValidationErrors: (errors: AnyObject, error?: string) => void;
1010
displaySubmitErrors: (errors: AnyObject, submitError?: string) => void;
1111
}
1212

1313
type DF = DisplayFeedback;
1414

1515
export const useDisplayFeedback = (): DF => {
16-
const { createErrorNotice } = useGlobalNotices();
16+
const { createErrorNotice, removeAllNotices } = useGlobalNotices();
1717

1818
const displayErrors = useCallback(
1919
(errors: AnyObject) => {
@@ -25,35 +25,38 @@ export const useDisplayFeedback = (): DF => {
2525
[createErrorNotice],
2626
);
2727

28+
const clearNotices = useCallback(() => {
29+
removeAllNotices('snackbar');
30+
}, [removeAllNotices]);
31+
2832
const displaySubmitErrors = useCallback<DF['displaySubmitErrors']>(
2933
({ [FORM_ERROR]: formError, ...errors }, submitError) => {
3034
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
3135
console.log({ errors, submitError, formError });
36+
clearNotices();
3237

3338
if (submitError || formError) {
34-
const title = submitError ?? formError;
35-
createErrorNotice(title);
39+
createErrorNotice(submitError || formError);
3640
}
3741
displayErrors(errors);
3842
},
39-
[displayErrors, createErrorNotice],
43+
[displayErrors, createErrorNotice, clearNotices],
4044
);
4145

4246
const displayValidationErrors = useCallback<DF['displayValidationErrors']>(
43-
(errors, error) => {
44-
const title =
45-
typeof error === 'string' ? error : __('Lets fix these errors first.');
46-
createErrorNotice(title);
47+
(errors) => {
48+
clearNotices();
4749
displayErrors(errors);
4850
},
49-
[createErrorNotice, displayErrors],
51+
[displayErrors, clearNotices],
5052
);
5153

5254
return useMemo(
5355
() => ({
56+
clearNotices,
5457
displaySubmitErrors,
5558
displayValidationErrors,
5659
}),
57-
[displaySubmitErrors, displayValidationErrors],
60+
[clearNotices, displaySubmitErrors, displayValidationErrors],
5861
);
5962
};

0 commit comments

Comments
 (0)