+
+
+ {t('update-available')}
+
+
+ }
+ open={visible}
+ onCancel={handleLater}
+ footer={null}
+ centered
+ closable={false}
+ maskClosable={false}
+ width={460}
+ styles={{
+ body: { padding: '20px 24px' }
+ }}
+ >
+
+
+ {t('update-description')}
+
+
+
+
+ {t('update-instruction')}
+
+
+
+
+
+ {t('update-whats-new', {
+ interpolation: { escapeValue: false }
+ })}
+
+
+
+
+ }
+ onClick={handleLater}
+ disabled={isUpdating}
+ >
+ {t('update-later')}
+
+ }
+ loading={isUpdating}
+ onClick={handleUpdate}
+ >
+ {isUpdating ? t('updating') : t('update-now')}
+
+
+
+ );
+};
+
+export default UpdateNotification;
\ No newline at end of file
diff --git a/worklenz-frontend/src/components/update-notification/UpdateNotificationProvider.tsx b/worklenz-frontend/src/components/update-notification/UpdateNotificationProvider.tsx
new file mode 100644
index 00000000..180286c9
--- /dev/null
+++ b/worklenz-frontend/src/components/update-notification/UpdateNotificationProvider.tsx
@@ -0,0 +1,50 @@
+// Update Notification Provider
+// Provides global update notification management
+
+import React from 'react';
+import { useUpdateChecker } from '../../hooks/useUpdateChecker';
+import UpdateNotification from './UpdateNotification';
+
+interface UpdateNotificationProviderProps {
+ children: React.ReactNode;
+ checkInterval?: number;
+ enableAutoCheck?: boolean;
+}
+
+const UpdateNotificationProvider: React.FC