diff --git a/src/App.tsx b/src/App.tsx index f1fb127b..71a73ed3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,12 +1,12 @@ import { ConfigurationEvent, HabboWebTools, LegacyExternalInterface, Nitro, NitroCommunicationDemoEvent, NitroEvent, NitroLocalizationEvent, NitroVersion, RoomEngineEvent, WebGL } from '@nitrots/nitro-renderer'; import { FC, useCallback, useState } from 'react'; import { GetCommunication, GetConfiguration, GetNitroInstance } from './api'; +import { LoadingView } from './components/loading/LoadingView'; import { useConfigurationEvent } from './hooks/events/core/configuration/configuration-event'; import { useLocalizationEvent } from './hooks/events/nitro/localization/localization-event'; import { dispatchMainEvent, useMainEvent } from './hooks/events/nitro/main-event'; import { useRoomEngineEvent } from './hooks/events/nitro/room/room-engine-event'; import { TransitionAnimation, TransitionAnimationTypes } from './layout'; -import { LoadingView } from './views/loading/LoadingView'; import { MainView } from './views/main/MainView'; export const App: FC<{}> = props => diff --git a/src/components/index.scss b/src/components/index.scss index 9e649d77..0a8601ce 100644 --- a/src/components/index.scss +++ b/src/components/index.scss @@ -6,6 +6,7 @@ @import './groups/GroupView'; @import './help/HelpView'; @import './inventory/InventoryView'; +@import './loading/LoadingView'; @import './mod-tools/ModToolsView'; @import './navigator/NavigatorView'; @import './purse/PurseView'; diff --git a/src/views/loading/LoadingView.scss b/src/components/loading/LoadingView.scss similarity index 100% rename from src/views/loading/LoadingView.scss rename to src/components/loading/LoadingView.scss diff --git a/src/components/loading/LoadingView.tsx b/src/components/loading/LoadingView.tsx new file mode 100644 index 00000000..ecf4fc75 --- /dev/null +++ b/src/components/loading/LoadingView.tsx @@ -0,0 +1,37 @@ +import { FC, useEffect, useState } from 'react'; +import { Base, Column } from '../../common'; +import { NotificationUtilities } from '../../views/notification-center/common/NotificationUtilities'; + +interface LoadingViewProps +{ + isError: boolean; + message: string; +} + +export const LoadingView: FC = props => +{ + const { isError = false, message = '' } = props; + const [ loadingShowing, setLoadingShowing ] = useState(false); + + useEffect(() => + { + if(!isError) return; + + NotificationUtilities.simpleAlert(message, null, null, null, 'Connection Error'); + }, [ isError, message ]); + + useEffect(() => + { + const timeout = setTimeout(() => setLoadingShowing(true), 500); + + return () => clearTimeout(timeout); + }, []); + + return ( + + + { isError && (message && message.length) && + { message } } + + ); +} diff --git a/src/views/room-host/RoomHostView.tsx b/src/components/room-host/RoomHostView.tsx similarity index 93% rename from src/views/room-host/RoomHostView.tsx rename to src/components/room-host/RoomHostView.tsx index 5e1d15f6..5fee567f 100644 --- a/src/views/room-host/RoomHostView.tsx +++ b/src/components/room-host/RoomHostView.tsx @@ -1,10 +1,11 @@ import { IRoomSession, RoomEngineEvent, RoomId, RoomSessionEvent } from '@nitrots/nitro-renderer'; import { FC, useCallback, useState } from 'react'; import { GetRoomSession, SetActiveRoomId, StartRoomSession } from '../../api'; +import { Base } from '../../common'; import { useRoomEngineEvent } from '../../hooks/events/nitro/room/room-engine-event'; import { useRoomSessionManagerEvent } from '../../hooks/events/nitro/session/room-session-manager-event'; import { TransitionAnimation, TransitionAnimationTypes } from '../../layout'; -import { RoomView } from '../room/RoomView'; +import { RoomView } from '../../views/room/RoomView'; export const RoomHostView: FC<{}> = props => { @@ -51,9 +52,9 @@ export const RoomHostView: FC<{}> = props => return ( -
+ -
+
); } diff --git a/src/views/Styles.scss b/src/views/Styles.scss index ff2df8f4..05132c3d 100644 --- a/src/views/Styles.scss +++ b/src/views/Styles.scss @@ -1,11 +1,9 @@ @import "./shared/Shared"; @import "./friends/FriendsView"; @import "./hotel-view/HotelView"; -@import "./loading/LoadingView"; @import "./main/MainView"; @import "./notification-center/NotificationCenterView"; @import "./room/RoomView"; -@import "./room-host/RoomHostView"; @import "./floorplan-editor/FloorplanEditorView"; @import "./nitropedia/NitropediaView"; @import "./hc-center/HcCenterView.scss"; diff --git a/src/views/loading/LoadingView.tsx b/src/views/loading/LoadingView.tsx deleted file mode 100644 index 4d498951..00000000 --- a/src/views/loading/LoadingView.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { FC, useEffect, useState } from 'react'; -import { NitroLayoutFlexColumn } from '../../layout'; -import { NitroLayoutBase } from '../../layout/base'; -import { NotificationUtilities } from '../notification-center/common/NotificationUtilities'; -import { LoadingViewProps } from './LoadingView.types'; - -export const LoadingView: FC = props => -{ - const { isError = false, message = '' } = props; - const [ loadingShowing, setLoadingShowing ] = useState(false); - - useEffect(() => - { - if(!isError) return; - - NotificationUtilities.simpleAlert(message, null, null, null, 'Connection Error'); - }, [ isError, message ]); - - useEffect(() => - { - const timeout = setTimeout(() => - { - setLoadingShowing(true); - }, 500); - - return () => - { - clearTimeout(timeout); - } - }, []); - - return ( - - - {/* - - */} - {/* - - */} - { isError && (message && message.length) && - { message } } - - ); -} diff --git a/src/views/loading/LoadingView.types.ts b/src/views/loading/LoadingView.types.ts deleted file mode 100644 index 2dd560e4..00000000 --- a/src/views/loading/LoadingView.types.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface LoadingViewProps -{ - isError: boolean; - message: string; -} diff --git a/src/views/main/MainView.tsx b/src/views/main/MainView.tsx index a9da8bd7..b9829e84 100644 --- a/src/views/main/MainView.tsx +++ b/src/views/main/MainView.tsx @@ -12,6 +12,7 @@ import { InventoryView } from '../../components/inventory/InventoryView'; import { ModToolsView } from '../../components/mod-tools/ModToolsView'; import { NavigatorView } from '../../components/navigator/NavigatorView'; import { RightSideView } from '../../components/right-side/RightSideView'; +import { RoomHostView } from '../../components/room-host/RoomHostView'; import { ToolbarView } from '../../components/toolbar/ToolbarView'; import { UserProfileView } from '../../components/user-profile/UserProfileView'; import { UserSettingsView } from '../../components/user-settings/UserSettingsView'; @@ -24,7 +25,6 @@ import { FriendsView } from '../friends/FriendsView'; import { HcCenterView } from '../hc-center/HcCenterView'; import { HotelView } from '../hotel-view/HotelView'; import { NitropediaView } from '../nitropedia/NitropediaView'; -import { RoomHostView } from '../room-host/RoomHostView'; import { MainViewProps } from './MainView.types'; export const MainView: FC = props => diff --git a/src/views/room-host/RoomHostView.scss b/src/views/room-host/RoomHostView.scss deleted file mode 100644 index 7f2365ed..00000000 --- a/src/views/room-host/RoomHostView.scss +++ /dev/null @@ -1,3 +0,0 @@ -.nitro-room-host { - -}