Skip to content

Commit 8f12383

Browse files
Allow NHS.UK frontend errors to be caught
1 parent dcbd029 commit 8f12383

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/components/content-presentation/notification-banner/NotificationBanner.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,17 @@ export interface NotificationBannerProps extends ComponentPropsWithoutRef<'div'>
2525
const NotificationBannerComponent = forwardRef<HTMLDivElement, NotificationBannerProps>(
2626
({ children, className, title, success, role, disableAutoFocus, ...rest }, forwardedRef) => {
2727
const [moduleRef] = useState(() => forwardedRef || createRef<HTMLDivElement>());
28+
const [instanceError, setInstanceError] = useState<Error>();
2829
const [instance, setInstance] = useState<NotificationBannerModule>();
2930

3031
useEffect(() => {
3132
if (!('current' in moduleRef) || !moduleRef.current || instance) {
3233
return;
3334
}
3435

35-
const { current: $root } = moduleRef;
36-
37-
import('nhsuk-frontend').then(({ NotificationBanner }) => {
38-
setInstance(new NotificationBanner($root));
39-
});
36+
import('nhsuk-frontend')
37+
.then(({ NotificationBanner }) => setInstance(new NotificationBanner(moduleRef.current)))
38+
.catch(setInstanceError);
4039
}, [moduleRef, instance]);
4140

4241
const items = Children.toArray(children);
@@ -52,6 +51,11 @@ const NotificationBannerComponent = forwardRef<HTMLDivElement, NotificationBanne
5251
const bodyItems = nonTitleItems.filter(
5352
(child) => !childIsOfComponentType(child, NotificationBannerHeading),
5453
);
54+
55+
if (instanceError) {
56+
throw instanceError;
57+
}
58+
5559
return (
5660
<div
5761
className={classNames(

0 commit comments

Comments
 (0)