Quellcode durchsuchen

Merge pull request #4098 from overleaf/msm-fix-application-provider-required-user

Fixed `isRequired` usages for `ApplicationProvider.value.user`

GitOrigin-RevId: 0f3db77fa5da1cb0aec29ef112d1044173df88e0
Jakob Ackermann vor 5 Jahren
Ursprung
Commit
f5942f1a7b

+ 3 - 1
services/web/frontend/js/features/chat/components/chat-pane.js

@@ -15,7 +15,9 @@ function ChatPane() {
   const { t } = useTranslation()
 
   const { chatIsOpen } = useLayoutContext({ chatIsOpen: PropTypes.bool })
-  const { user } = useApplicationContext()
+  const { user } = useApplicationContext({
+    user: PropTypes.shape({ id: PropTypes.string.isRequired }.isRequired),
+  })
 
   const {
     status,

+ 5 - 1
services/web/frontend/js/shared/context/application-context.js

@@ -16,9 +16,13 @@ ApplicationContext.Provider.propTypes = {
 
 export function ApplicationProvider({ children }) {
   const applicationContextValue = {
-    user: window.user,
     gitBridgePublicBaseUrl: window.gitBridgePublicBaseUrl,
   }
+
+  if (window.user.id) {
+    applicationContextValue.user = window.user
+  }
+
   return (
     <ApplicationContext.Provider value={applicationContextValue}>
       {children}

+ 7 - 1
services/web/frontend/js/shared/context/root-context.js

@@ -8,12 +8,18 @@ import { LayoutProvider } from './layout-context'
 import { CompileProvider } from './compile-context'
 
 export function ContextRoot({ children, ide, settings }) {
+  const isAnonymousUser = window.user.id == null
+
   return (
     <ApplicationProvider>
       <EditorProvider ide={ide} settings={settings}>
         <CompileProvider $scope={ide.$scope}>
           <LayoutProvider $scope={ide.$scope}>
-            <ChatProvider>{children}</ChatProvider>
+            {isAnonymousUser ? (
+              children
+            ) : (
+              <ChatProvider>{children}</ChatProvider>
+            )}
           </LayoutProvider>
         </CompileProvider>
       </EditorProvider>