diff --git a/src/App.tsx b/src/App.tsx index 1e7a35f..e54defc 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ import { GetAssetManager, GetAvatarRenderManager, GetCommunication, GetConfiguration, GetLocalizationManager, GetRoomEngine, GetRoomSessionManager, GetSessionDataManager, GetSoundManager, GetStage, GetTexturePool, GetTicker, HabboWebTools, LegacyExternalInterface, LoadGameUrlEvent, NitroEventType, NitroLogger, NitroVersion, PrepareRenderer } from '@nitrots/nitro-renderer'; -import { FC, useCallback, useEffect, useRef, useState } from 'react'; +import { FC, useCallback, useEffect, useEffectEvent, useRef, useState } from 'react'; import { ClearRememberLogin, GetRememberLogin, GetUIVersion, StoreRememberLoginFromPayload } from './api'; import { Base } from './common'; import { LoadingView } from './components/loading/LoadingView'; @@ -316,6 +316,8 @@ export const App: FC<{}> = props => }; }, []); + const onSessionExpired = useEffectEvent(() => showSessionExpired()); + useEffect(() => { const prepare = async (width: number, height: number) => @@ -379,7 +381,7 @@ export const App: FC<{}> = props => return; } - showSessionExpired(); + onSessionExpired(); return; } } @@ -432,7 +434,7 @@ export const App: FC<{}> = props => { NitroLogger.error(err); setIsEnteringHotel(false); - showSessionExpired(); + onSessionExpired(); } }; diff --git a/src/api/ui-settings/UiSettingsContext.tsx b/src/api/ui-settings/UiSettingsContext.tsx index fb5abcb..0bde41d 100644 --- a/src/api/ui-settings/UiSettingsContext.tsx +++ b/src/api/ui-settings/UiSettingsContext.tsx @@ -60,6 +60,13 @@ const saveSettings = (settings: IUiSettings): void => {} }; +const ALL_CSS_VARS = [ + '--ui-accent-color', '--ui-accent-dark', + '--ui-ctx-bg', '--ui-ctx-header-bg', '--ui-ctx-item-bg1', '--ui-ctx-item-bg2', + '--ui-btn-primary-bg', '--ui-btn-primary-border', + '--ui-dark-bg', '--ui-dark-border' +]; + const sendComposer = (composer: any): void => { try @@ -189,13 +196,6 @@ export const UiSettingsProvider: FC = ({ children }) => const isCustomActive = settings.colorMode !== 'default'; - const ALL_CSS_VARS = [ - '--ui-accent-color', '--ui-accent-dark', - '--ui-ctx-bg', '--ui-ctx-header-bg', '--ui-ctx-item-bg1', '--ui-ctx-item-bg2', - '--ui-btn-primary-bg', '--ui-btn-primary-border', - '--ui-dark-bg', '--ui-dark-border' - ]; - useEffect(() => { const root = document.documentElement; diff --git a/src/components/furni-editor/views/FurniEditorSearchView.tsx b/src/components/furni-editor/views/FurniEditorSearchView.tsx index 4fb9af5..a1eccfb 100644 --- a/src/components/furni-editor/views/FurniEditorSearchView.tsx +++ b/src/components/furni-editor/views/FurniEditorSearchView.tsx @@ -1,4 +1,4 @@ -import { FC, useCallback, useEffect, useMemo, useState } from 'react'; +import { FC, useCallback, useEffect, useEffectEvent, useMemo, useState } from 'react'; import { Button, Column, Flex, LayoutFurniIconImageView, Text } from '../../../common'; import { FurniItem } from '../../../hooks/furni-editor'; @@ -30,9 +30,11 @@ export const FurniEditorSearchView: FC = props => const [ sortField, setSortField ] = useState('id'); const [ sortDir, setSortDir ] = useState('asc'); + const initialSearch = useEffectEvent(() => onSearch('', '', 1)); + useEffect(() => { - onSearch('', '', 1); + initialSearch(); }, []); const handleSearch = useCallback(() => diff --git a/src/components/navigator/views/room-settings/NavigatorRoomSettingsRightsTabView.tsx b/src/components/navigator/views/room-settings/NavigatorRoomSettingsRightsTabView.tsx index eede2d5..1c12f00 100644 --- a/src/components/navigator/views/room-settings/NavigatorRoomSettingsRightsTabView.tsx +++ b/src/components/navigator/views/room-settings/NavigatorRoomSettingsRightsTabView.tsx @@ -100,7 +100,7 @@ export const NavigatorRoomSettingsRightsTabView: FC diff --git a/src/components/notification-center/views/bubble-layouts/NotificationBadgeReceivedBubbleView.tsx b/src/components/notification-center/views/bubble-layouts/NotificationBadgeReceivedBubbleView.tsx index 8c1154e..edd866f 100644 --- a/src/components/notification-center/views/bubble-layouts/NotificationBadgeReceivedBubbleView.tsx +++ b/src/components/notification-center/views/bubble-layouts/NotificationBadgeReceivedBubbleView.tsx @@ -1,5 +1,5 @@ import { RequestBadgesComposer } from '@nitrots/nitro-renderer'; -import { FC, useEffect } from 'react'; +import { FC, useEffect, useEffectEvent } from 'react'; import { LocalizeText, NotificationBubbleItem, SendMessageComposer } from '../../../../api'; import { Flex, LayoutNotificationBubbleView, LayoutNotificationBubbleViewProps, Text } from '../../../../common'; import { useInventoryBadges } from '../../../../hooks'; @@ -14,9 +14,14 @@ export const NotificationBadgeReceivedBubbleView: FC + const requestBadgesIfEmpty = useEffectEvent(() => { if(badgeCodes.length === 0) SendMessageComposer(new RequestBadgesComposer()); + }); + + useEffect(() => + { + requestBadgesIfEmpty(); }, []); const handleWear = (event: React.MouseEvent) =>