From ea3402af88d4652a6c0b20dcc058696426881dee Mon Sep 17 00:00:00 2001 From: Bill Date: Tue, 31 Aug 2021 18:17:29 -0400 Subject: [PATCH] Fix camera --- .../camera/RoomWidgetCameraEvent.ts | 0 src/events/{room-widgets => }/camera/index.ts | 0 src/events/index.ts | 1 + src/events/room-widgets/index.ts | 1 - src/layout/card/grid/index.ts | 4 ++++ src/layout/card/grid/item/index.ts | 2 ++ src/layout/card/index.ts | 1 + src/views/Styles.scss | 1 + .../widgets => }/camera/CameraWidgetView.scss | 6 ++--- .../widgets => }/camera/CameraWidgetView.tsx | 22 ++++++++++++++----- .../camera/common/CameraPicture.ts | 0 .../camera/common/CameraPictureThumbnail.ts | 0 .../camera/context/CameraWidgetContext.tsx | 0 .../context/CameraWidgetContext.types.ts | 0 .../views/capture/CameraWidgetCaptureView.tsx | 4 ++-- .../capture/CameraWidgetCaptureView.types.ts | 0 .../checkout/CameraWidgetCheckoutView.tsx | 8 +++---- .../CameraWidgetCheckoutView.types.ts | 0 .../views/editor/CameraWidgetEditorView.tsx | 4 ++-- .../editor/CameraWidgetEditorView.types.ts | 0 .../CameraWidgetEffectListItemView.tsx | 4 ++-- .../CameraWidgetEffectListItemView.types.ts | 0 .../CameraWidgetEffectListView.tsx | 2 +- .../CameraWidgetEffectListView.types.ts | 0 src/views/main/MainView.tsx | 2 ++ src/views/room/widgets/RoomWidgets.scss | 1 - src/views/room/widgets/RoomWidgetsView.tsx | 2 -- 27 files changed, 41 insertions(+), 24 deletions(-) rename src/events/{room-widgets => }/camera/RoomWidgetCameraEvent.ts (100%) rename src/events/{room-widgets => }/camera/index.ts (100%) create mode 100644 src/layout/card/grid/index.ts create mode 100644 src/layout/card/grid/item/index.ts rename src/views/{room/widgets => }/camera/CameraWidgetView.scss (92%) rename src/views/{room/widgets => }/camera/CameraWidgetView.tsx (85%) rename src/views/{room/widgets => }/camera/common/CameraPicture.ts (100%) rename src/views/{room/widgets => }/camera/common/CameraPictureThumbnail.ts (100%) rename src/views/{room/widgets => }/camera/context/CameraWidgetContext.tsx (100%) rename src/views/{room/widgets => }/camera/context/CameraWidgetContext.types.ts (100%) rename src/views/{room/widgets => }/camera/views/capture/CameraWidgetCaptureView.tsx (97%) rename src/views/{room/widgets => }/camera/views/capture/CameraWidgetCaptureView.types.ts (100%) rename src/views/{room/widgets => }/camera/views/checkout/CameraWidgetCheckoutView.tsx (97%) rename src/views/{room/widgets => }/camera/views/checkout/CameraWidgetCheckoutView.types.ts (100%) rename src/views/{room/widgets => }/camera/views/editor/CameraWidgetEditorView.tsx (99%) rename src/views/{room/widgets => }/camera/views/editor/CameraWidgetEditorView.types.ts (100%) rename src/views/{room/widgets => }/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx (89%) rename src/views/{room/widgets => }/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.types.ts (100%) rename src/views/{room/widgets => }/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx (93%) rename src/views/{room/widgets => }/camera/views/editor/effect-list/CameraWidgetEffectListView.types.ts (100%) diff --git a/src/events/room-widgets/camera/RoomWidgetCameraEvent.ts b/src/events/camera/RoomWidgetCameraEvent.ts similarity index 100% rename from src/events/room-widgets/camera/RoomWidgetCameraEvent.ts rename to src/events/camera/RoomWidgetCameraEvent.ts diff --git a/src/events/room-widgets/camera/index.ts b/src/events/camera/index.ts similarity index 100% rename from src/events/room-widgets/camera/index.ts rename to src/events/camera/index.ts diff --git a/src/events/index.ts b/src/events/index.ts index 684c0bfa..006285c8 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -1,4 +1,5 @@ export * from './avatar-editor'; +export * from './camera'; export * from './catalog'; export * from './friend-list'; export * from './inventory'; diff --git a/src/events/room-widgets/index.ts b/src/events/room-widgets/index.ts index 960db095..d4ab7a50 100644 --- a/src/events/room-widgets/index.ts +++ b/src/events/room-widgets/index.ts @@ -1,2 +1 @@ -export * from './camera'; export * from './thumbnail'; diff --git a/src/layout/card/grid/index.ts b/src/layout/card/grid/index.ts new file mode 100644 index 00000000..4b3dea50 --- /dev/null +++ b/src/layout/card/grid/index.ts @@ -0,0 +1,4 @@ +export * from './context'; +export * from './item'; +export * from './NitroCardGridView'; +export * from './NitroCardGridView.types'; diff --git a/src/layout/card/grid/item/index.ts b/src/layout/card/grid/item/index.ts new file mode 100644 index 00000000..508dd259 --- /dev/null +++ b/src/layout/card/grid/item/index.ts @@ -0,0 +1,2 @@ +export * from './NitroCardGridItemView'; +export * from './NitroCardGridItemView.types'; diff --git a/src/layout/card/index.ts b/src/layout/card/index.ts index 06a9fc46..9191b143 100644 --- a/src/layout/card/index.ts +++ b/src/layout/card/index.ts @@ -1,6 +1,7 @@ export * from './accordion'; export * from './content'; export * from './context'; +export * from './grid'; export * from './header'; export * from './NitroCardView'; export * from './NitroCardView.types'; diff --git a/src/views/Styles.scss b/src/views/Styles.scss index cf3f7c2e..eecc2119 100644 --- a/src/views/Styles.scss +++ b/src/views/Styles.scss @@ -1,5 +1,6 @@ @import './shared/Shared'; @import './avatar-editor/AvatarEditorView'; +@import './camera/CameraWidgetView'; @import './catalog/CatalogView'; @import './friend-list/FriendListView'; @import './groups/GroupView'; diff --git a/src/views/room/widgets/camera/CameraWidgetView.scss b/src/views/camera/CameraWidgetView.scss similarity index 92% rename from src/views/room/widgets/camera/CameraWidgetView.scss rename to src/views/camera/CameraWidgetView.scss index 22217552..312181bb 100644 --- a/src/views/room/widgets/camera/CameraWidgetView.scss +++ b/src/views/camera/CameraWidgetView.scss @@ -33,7 +33,7 @@ position: relative; width: 340px; height: 462px; - background-image: url('../../../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); + background-image: url('../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); background-position: -1px -1px; z-index: 2; @@ -43,7 +43,7 @@ cursor: pointer; margin-top: 362px; - background-image: url('../../../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); + background-image: url('../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); background-position: -343px -321px; &:hover { @@ -56,7 +56,7 @@ } .camera-view-finder { - background-image: url('../../../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); + background-image: url('../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); background-position: -343px -1px; } diff --git a/src/views/room/widgets/camera/CameraWidgetView.tsx b/src/views/camera/CameraWidgetView.tsx similarity index 85% rename from src/views/room/widgets/camera/CameraWidgetView.tsx rename to src/views/camera/CameraWidgetView.tsx index 0dcfe8aa..23f3d80e 100644 --- a/src/views/room/widgets/camera/CameraWidgetView.tsx +++ b/src/views/camera/CameraWidgetView.tsx @@ -1,10 +1,11 @@ -import { InitCameraMessageEvent, IRoomCameraWidgetEffect, RequestCameraConfigurationComposer, RoomCameraWidgetManagerEvent } from '@nitrots/nitro-renderer'; +import { InitCameraMessageEvent, IRoomCameraWidgetEffect, RequestCameraConfigurationComposer, RoomCameraWidgetManagerEvent, RoomSessionEvent } from '@nitrots/nitro-renderer'; import { FC, useCallback, useEffect, useState } from 'react'; -import { GetRoomCameraWidgetManager } from '../../../../api'; -import { RoomWidgetCameraEvent } from '../../../../events/room-widgets/camera/RoomWidgetCameraEvent'; -import { useCameraEvent } from '../../../../hooks/events/nitro/camera/camera-event'; -import { useUiEvent } from '../../../../hooks/events/ui/ui-event'; -import { CreateMessageHook, SendMessageHook } from '../../../../hooks/messages/message-event'; +import { GetRoomCameraWidgetManager } from '../../api'; +import { RoomWidgetCameraEvent } from '../../events/camera/RoomWidgetCameraEvent'; +import { useRoomSessionManagerEvent } from '../../hooks'; +import { useCameraEvent } from '../../hooks/events/nitro/camera/camera-event'; +import { useUiEvent } from '../../hooks/events/ui/ui-event'; +import { CreateMessageHook, SendMessageHook } from '../../hooks/messages/message-event'; import { CameraPicture } from './common/CameraPicture'; import { CameraWidgetContextProvider } from './context/CameraWidgetContext'; import { CameraWidgetCaptureView } from './views/capture/CameraWidgetCaptureView'; @@ -66,6 +67,13 @@ export const CameraWidgetView: FC<{}> = props => CreateMessageHook(InitCameraMessageEvent, onCameraConfigurationEvent); + const onRoomSessionEvent = useCallback((event: RoomSessionEvent) => + { + setMode(MODE_NONE); + }, []); + + useRoomSessionManagerEvent(RoomSessionEvent.ENDED, onRoomSessionEvent); + useEffect(() => { if(!GetRoomCameraWidgetManager().isLoaded) @@ -110,6 +118,8 @@ export const CameraWidgetView: FC<{}> = props => setMode(MODE_CHECKOUT); }, []); + if(mode === MODE_NONE) return null; + return ( { (mode === MODE_CAPTURE) && processAction('close') } onEdit={ () => processAction('edit') } onDelete={ () => processAction('delete') } /> } diff --git a/src/views/room/widgets/camera/common/CameraPicture.ts b/src/views/camera/common/CameraPicture.ts similarity index 100% rename from src/views/room/widgets/camera/common/CameraPicture.ts rename to src/views/camera/common/CameraPicture.ts diff --git a/src/views/room/widgets/camera/common/CameraPictureThumbnail.ts b/src/views/camera/common/CameraPictureThumbnail.ts similarity index 100% rename from src/views/room/widgets/camera/common/CameraPictureThumbnail.ts rename to src/views/camera/common/CameraPictureThumbnail.ts diff --git a/src/views/room/widgets/camera/context/CameraWidgetContext.tsx b/src/views/camera/context/CameraWidgetContext.tsx similarity index 100% rename from src/views/room/widgets/camera/context/CameraWidgetContext.tsx rename to src/views/camera/context/CameraWidgetContext.tsx diff --git a/src/views/room/widgets/camera/context/CameraWidgetContext.types.ts b/src/views/camera/context/CameraWidgetContext.types.ts similarity index 100% rename from src/views/room/widgets/camera/context/CameraWidgetContext.types.ts rename to src/views/camera/context/CameraWidgetContext.types.ts diff --git a/src/views/room/widgets/camera/views/capture/CameraWidgetCaptureView.tsx b/src/views/camera/views/capture/CameraWidgetCaptureView.tsx similarity index 97% rename from src/views/room/widgets/camera/views/capture/CameraWidgetCaptureView.tsx rename to src/views/camera/views/capture/CameraWidgetCaptureView.tsx index f8537813..40407e3e 100644 --- a/src/views/room/widgets/camera/views/capture/CameraWidgetCaptureView.tsx +++ b/src/views/camera/views/capture/CameraWidgetCaptureView.tsx @@ -1,7 +1,7 @@ import { NitroRectangle, TextureUtils } from '@nitrots/nitro-renderer'; import { FC, useCallback, useRef } from 'react'; -import { GetRoomEngine, GetRoomSession, LocalizeText } from '../../../../../../api'; -import { DraggableWindow } from '../../../../../../layout/draggable-window/DraggableWindow'; +import { GetRoomEngine, GetRoomSession, LocalizeText } from '../../../../api'; +import { DraggableWindow } from '../../../../layout'; import { CameraPicture } from '../../common/CameraPicture'; import { useCameraWidgetContext } from '../../context/CameraWidgetContext'; import { CameraWidgetCaptureViewProps } from './CameraWidgetCaptureView.types'; diff --git a/src/views/room/widgets/camera/views/capture/CameraWidgetCaptureView.types.ts b/src/views/camera/views/capture/CameraWidgetCaptureView.types.ts similarity index 100% rename from src/views/room/widgets/camera/views/capture/CameraWidgetCaptureView.types.ts rename to src/views/camera/views/capture/CameraWidgetCaptureView.types.ts diff --git a/src/views/room/widgets/camera/views/checkout/CameraWidgetCheckoutView.tsx b/src/views/camera/views/checkout/CameraWidgetCheckoutView.tsx similarity index 97% rename from src/views/room/widgets/camera/views/checkout/CameraWidgetCheckoutView.tsx rename to src/views/camera/views/checkout/CameraWidgetCheckoutView.tsx index d0a26f4b..d24f9787 100644 --- a/src/views/room/widgets/camera/views/checkout/CameraWidgetCheckoutView.tsx +++ b/src/views/camera/views/checkout/CameraWidgetCheckoutView.tsx @@ -1,9 +1,9 @@ import { CameraPublishStatusMessageEvent, CameraPurchaseOKMessageEvent, CameraStorageUrlMessageEvent, PublishPhotoMessageComposer, PurchasePhotoMessageComposer } from '@nitrots/nitro-renderer'; import { FC, useCallback, useEffect, useState } from 'react'; -import { GetConfiguration, GetRoomEngine, LocalizeText } from '../../../../../../api'; -import { CreateMessageHook, SendMessageHook } from '../../../../../../hooks/messages/message-event'; -import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../../layout'; -import { CurrencyIcon } from '../../../../../shared/currency-icon/CurrencyIcon'; +import { GetConfiguration, GetRoomEngine, LocalizeText } from '../../../../api'; +import { CreateMessageHook, SendMessageHook } from '../../../../hooks'; +import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../layout'; +import { CurrencyIcon } from '../../../shared/currency-icon/CurrencyIcon'; import { CameraWidgetCheckoutViewProps } from './CameraWidgetCheckoutView.types'; export const CameraWidgetCheckoutView: FC = props => diff --git a/src/views/room/widgets/camera/views/checkout/CameraWidgetCheckoutView.types.ts b/src/views/camera/views/checkout/CameraWidgetCheckoutView.types.ts similarity index 100% rename from src/views/room/widgets/camera/views/checkout/CameraWidgetCheckoutView.types.ts rename to src/views/camera/views/checkout/CameraWidgetCheckoutView.types.ts diff --git a/src/views/room/widgets/camera/views/editor/CameraWidgetEditorView.tsx b/src/views/camera/views/editor/CameraWidgetEditorView.tsx similarity index 99% rename from src/views/room/widgets/camera/views/editor/CameraWidgetEditorView.tsx rename to src/views/camera/views/editor/CameraWidgetEditorView.tsx index c453e50d..ad88301c 100644 --- a/src/views/room/widgets/camera/views/editor/CameraWidgetEditorView.tsx +++ b/src/views/camera/views/editor/CameraWidgetEditorView.tsx @@ -1,8 +1,8 @@ import { IRoomCameraWidgetSelectedEffect, RoomCameraWidgetSelectedEffect } from '@nitrots/nitro-renderer'; import { FC, useCallback, useEffect, useMemo, useState } from 'react'; import ReactSlider from 'react-slider'; -import { GetRoomCameraWidgetManager, LocalizeText } from '../../../../../../api'; -import { NitroCardContentView, NitroCardHeaderView, NitroCardTabsItemView, NitroCardTabsView, NitroCardView } from '../../../../../../layout'; +import { GetRoomCameraWidgetManager, LocalizeText } from '../../../../api'; +import { NitroCardContentView, NitroCardHeaderView, NitroCardTabsItemView, NitroCardTabsView, NitroCardView } from '../../../../layout'; import { CameraPictureThumbnail } from '../../common/CameraPictureThumbnail'; import { CameraWidgetEditorTabs, CameraWidgetEditorViewProps } from './CameraWidgetEditorView.types'; import { CameraWidgetEffectListView } from './effect-list/CameraWidgetEffectListView'; diff --git a/src/views/room/widgets/camera/views/editor/CameraWidgetEditorView.types.ts b/src/views/camera/views/editor/CameraWidgetEditorView.types.ts similarity index 100% rename from src/views/room/widgets/camera/views/editor/CameraWidgetEditorView.types.ts rename to src/views/camera/views/editor/CameraWidgetEditorView.types.ts diff --git a/src/views/room/widgets/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx b/src/views/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx similarity index 89% rename from src/views/room/widgets/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx rename to src/views/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx index c63353be..75e047e8 100644 --- a/src/views/room/widgets/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx +++ b/src/views/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.tsx @@ -1,6 +1,6 @@ import { FC } from 'react'; -import { LocalizeText } from '../../../../../../../api/utils'; -import { NitroCardGridItemView } from '../../../../../../../layout/card/grid/item/NitroCardGridItemView'; +import { LocalizeText } from '../../../../../api'; +import { NitroCardGridItemView } from '../../../../../layout'; import { CameraWidgetEffectListItemViewProps } from './CameraWidgetEffectListItemView.types'; export const CameraWidgetEffectListItemView: FC = props => diff --git a/src/views/room/widgets/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.types.ts b/src/views/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.types.ts similarity index 100% rename from src/views/room/widgets/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.types.ts rename to src/views/camera/views/editor/effect-list-item/CameraWidgetEffectListItemView.types.ts diff --git a/src/views/room/widgets/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx b/src/views/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx similarity index 93% rename from src/views/room/widgets/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx rename to src/views/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx index 5f36ce7c..fb509702 100644 --- a/src/views/room/widgets/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx +++ b/src/views/camera/views/editor/effect-list/CameraWidgetEffectListView.tsx @@ -1,5 +1,5 @@ import { FC } from 'react'; -import { NitroCardGridView } from '../../../../../../../layout/card/grid/NitroCardGridView'; +import { NitroCardGridView } from '../../../../../layout'; import { CameraWidgetEffectListItemView } from '../effect-list-item/CameraWidgetEffectListItemView'; import { CameraWidgetEffectListViewProps } from './CameraWidgetEffectListView.types'; diff --git a/src/views/room/widgets/camera/views/editor/effect-list/CameraWidgetEffectListView.types.ts b/src/views/camera/views/editor/effect-list/CameraWidgetEffectListView.types.ts similarity index 100% rename from src/views/room/widgets/camera/views/editor/effect-list/CameraWidgetEffectListView.types.ts rename to src/views/camera/views/editor/effect-list/CameraWidgetEffectListView.types.ts diff --git a/src/views/main/MainView.tsx b/src/views/main/MainView.tsx index 88ba1efe..a28b8f5b 100644 --- a/src/views/main/MainView.tsx +++ b/src/views/main/MainView.tsx @@ -4,6 +4,7 @@ import { GetCommunication } from '../../api'; import { useRoomSessionManagerEvent } from '../../hooks/events/nitro/session/room-session-manager-event'; import { AchievementsView } from '../achievements/AchievementsView'; import { AvatarEditorView } from '../avatar-editor/AvatarEditorView'; +import { CameraWidgetView } from '../camera/CameraWidgetView'; import { CatalogView } from '../catalog/CatalogView'; import { FriendListView } from '../friend-list/FriendListView'; import { GroupsView } from '../groups/GroupsView'; @@ -64,6 +65,7 @@ export const MainView: FC = props => + ); } diff --git a/src/views/room/widgets/RoomWidgets.scss b/src/views/room/widgets/RoomWidgets.scss index c621d250..4cac258a 100644 --- a/src/views/room/widgets/RoomWidgets.scss +++ b/src/views/room/widgets/RoomWidgets.scss @@ -1,5 +1,4 @@ @import './avatar-info/AvatarInfoWidgetView'; -@import './camera/CameraWidgetView'; @import './chat/ChatWidgetView'; @import './chat-input/ChatInputView'; @import './context-menu/ContextMenu'; diff --git a/src/views/room/widgets/RoomWidgetsView.tsx b/src/views/room/widgets/RoomWidgetsView.tsx index 713ae9f7..b1f3b102 100644 --- a/src/views/room/widgets/RoomWidgetsView.tsx +++ b/src/views/room/widgets/RoomWidgetsView.tsx @@ -4,7 +4,6 @@ import { CanManipulateFurniture, GetRoomEngine, IsFurnitureSelectionDisabled, Lo import { useRoomEngineEvent, useRoomSessionManagerEvent } from '../../../hooks/events'; import { useRoomContext } from '../context/RoomContext'; import { AvatarInfoWidgetView } from './avatar-info/AvatarInfoWidgetView'; -import { CameraWidgetView } from './camera/CameraWidgetView'; import { ChatInputView } from './chat-input/ChatInputView'; import { ChatWidgetView } from './chat/ChatWidgetView'; import { FurniChooserWidgetView } from './choosers/FurniChooserWidgetView'; @@ -240,7 +239,6 @@ export const RoomWidgetsView: FC = props => return ( <> -