diff --git a/web/.stylelintrc.json b/web/.stylelintrc.json index 8d53a4ce1..d7ebd0283 100644 --- a/web/.stylelintrc.json +++ b/web/.stylelintrc.json @@ -2,6 +2,7 @@ "extends": "stylelint-config-standard-scss", "rules": { "selector-class-pattern": null, - "no-descending-specificity": null + "no-descending-specificity": null, + "selector-pseudo-class-no-unknown": null } } \ No newline at end of file diff --git a/web/components/stores/ClientConfigStore.tsx b/web/components/stores/ClientConfigStore.tsx index 8751217e1..4bb53f6ea 100644 --- a/web/components/stores/ClientConfigStore.tsx +++ b/web/components/stores/ClientConfigStore.tsx @@ -412,6 +412,14 @@ export const ClientConfigStore: FC = () => { } catch (e) { console.error('error parsing status hydration', e); } + + try { + if ((window as any).configHydration && (window as any).statusHydration) { + sendEvent([AppStateEvent.Loaded]); + } + } catch (e) { + console.error('error sending loaded event', e); + } }, []); useEffect(() => { diff --git a/web/components/ui/Content/Content.module.scss b/web/components/ui/Content/Content.module.scss index 0ddcdae1d..ad22db30e 100644 --- a/web/components/ui/Content/Content.module.scss +++ b/web/components/ui/Content/Content.module.scss @@ -65,7 +65,7 @@ } } -//not sure if this is needed +// not sure if this is needed .statusBar { flex-shrink: 0; } @@ -99,10 +99,6 @@ } } -.offlineBanner { - color: var(--theme-color-background-main); -} - .floatingMobileChatModalButton { position: fixed; width: 100px; @@ -116,3 +112,10 @@ border-width: 0; box-shadow: 0 1px 3px 1px rgb(0 0 0 / 20%); } + +.centerSpinner { + display: flex; + justify-content: center; + align-items: center; + height: 100%; +} diff --git a/web/components/ui/Content/Content.tsx b/web/components/ui/Content/Content.tsx index 0c546f9eb..015c2cd86 100644 --- a/web/components/ui/Content/Content.tsx +++ b/web/components/ui/Content/Content.tsx @@ -1,5 +1,5 @@ import { useRecoilState, useRecoilValue } from 'recoil'; -import { Skeleton, Col, Row, Button } from 'antd'; +import { Skeleton, Col, Row, Button, Spin } from 'antd'; import MessageFilled from '@ant-design/icons/MessageFilled'; import { FC, useEffect, useState } from 'react'; import dynamic from 'next/dynamic'; @@ -194,7 +194,12 @@ export const Content: FC = () => { <> <> {appState.appLoading && ( -
+
+ +
)} {showChat && !isMobile && } @@ -262,6 +267,7 @@ export const Content: FC = () => { + {!name && } {isMobile ? (