From 87f85404245148d8bf15220ea6845e758948614c Mon Sep 17 00:00:00 2001 From: bflatastic Date: Thu, 10 Apr 2025 20:18:01 +0700 Subject: [PATCH] added more tabs to assets modal and save fix --- .../src/components/reusable/LoadingDots.tsx | 60 ++++++++----------- .../app/pages/PageEnigma/PageEditor.tsx | 2 +- .../PageEnigma/comps/AssetMenu/AssetModal.tsx | 59 ++++++++++++------ .../ControlsTopButtons/ControlsTopButtons.tsx | 2 +- .../PageEnigma/comps/OnboardingHelper.tsx | 2 +- 5 files changed, 69 insertions(+), 56 deletions(-) diff --git a/frontend/editor2d/src/components/reusable/LoadingDots.tsx b/frontend/editor2d/src/components/reusable/LoadingDots.tsx index 4ffe0baa24..675e56b15d 100644 --- a/frontend/editor2d/src/components/reusable/LoadingDots.tsx +++ b/frontend/editor2d/src/components/reusable/LoadingDots.tsx @@ -1,42 +1,40 @@ -import { Transition } from '@headlessui/react'; -import { twMerge } from 'tailwind-merge'; +import { Transition } from "@headlessui/react"; +import { twMerge } from "tailwind-merge"; -import { H4 } from '.'; +import { H4 } from "."; interface LoadingDotsProps { className?: string; isShowing?: boolean; -}; +} interface LoadingDotsInnerProps { className?: string; isShowing?: boolean; - type?: 'typing'|'bricks'; + type?: "typing" | "bricks"; message?: string; -}; +} -export const LoadingDotsTyping = (props: LoadingDotsProps)=>{ - return ( - - ) -} -export const LoadingDotsBricks = (props: LoadingDotsProps)=>{ - return ( - - ) -} +export const LoadingDotsTyping = (props: LoadingDotsProps) => { + return ; +}; +export const LoadingDotsBricks = (props: LoadingDotsProps) => { + return ; +}; export function LoadingDots({ className, - isShowing=true, - type = 'typing', + isShowing = true, + type = "typing", message, -}: LoadingDotsInnerProps){ - const classNames = twMerge("w-full h-full flex flex-col justify-center items-center bg-ui-background gap-6", className); +}: LoadingDotsInnerProps) { + const classNames = twMerge( + "relative w-full h-full flex flex-col justify-center items-center bg-ui-background gap-6 z-50", + className, + ); - return( + return ( - { type==='typing' && -
- } - { type==='bricks' && -
- } - { - message && -

{message}

- } +
+ {type === "typing" &&
} + {type === "bricks" &&
} + {message &&

{message}

} +
); -}; - +} diff --git a/frontend/editor3d/app/pages/PageEnigma/PageEditor.tsx b/frontend/editor3d/app/pages/PageEnigma/PageEditor.tsx index 3c1daf9217..777ea7078c 100644 --- a/frontend/editor3d/app/pages/PageEnigma/PageEditor.tsx +++ b/frontend/editor3d/app/pages/PageEnigma/PageEditor.tsx @@ -134,7 +134,7 @@ export const PageEditor = () => { { defaultErrorMessage: "Error fetching user objects", }); - const { userObjects: userNature } = useUserObjects({ - filterEngineCategories: [FilterEngineCategories.SET_DRESSING], - defaultErrorMessage: "Error fetching user nature assets", - }); - const { featuredObjects: featuredCharacters } = useFeaturedObjects({ filterEngineCategories: [FilterEngineCategories.CHARACTER], defaultErrorMessage: "Error fetching featured characters", @@ -121,9 +117,24 @@ export const AssetModal = ({ isOpen, onClose }: AssetModalProps) => { defaultErrorMessage: "Error fetching featured objects", }); - const { featuredObjects: featuredNature } = useFeaturedObjects({ - filterEngineCategories: [FilterEngineCategories.SET_DRESSING], - defaultErrorMessage: "Error fetching featured nature assets", + const { userObjects: userSets } = useUserObjects({ + filterEngineCategories: [FilterEngineCategories.LOCATION], + defaultErrorMessage: "Error fetching user sets", + }); + + const { featuredObjects: featuredSets } = useFeaturedObjects({ + filterEngineCategories: [FilterEngineCategories.LOCATION], + defaultErrorMessage: "Error fetching featured sets", + }); + + const { userObjects: userCreatures } = useUserObjects({ + filterEngineCategories: [FilterEngineCategories.CREATURE], + defaultErrorMessage: "Error fetching user creatures", + }); + + const { featuredObjects: featuredCreatures } = useFeaturedObjects({ + filterEngineCategories: [FilterEngineCategories.CREATURE], + defaultErrorMessage: "Error fetching featured creatures", }); const libraryTabs = [ @@ -154,22 +165,32 @@ export const AssetModal = ({ isOpen, onClose }: AssetModalProps) => { ? [...demoShapeItems.value, ...(featuredObjects ?? [])] : (userObjects ?? []), }, + { + id: "sets", + label: "Sets", + icon: faMountainCity, + engineCategory: FilterEngineCategories.LOCATION, + items: + activeLibraryTab === "library" + ? (featuredSets ?? []) + : (userSets ?? []), + }, + { + id: "creatures", + label: "Creatures", + icon: faDog, + engineCategory: FilterEngineCategories.CREATURE, + items: + activeLibraryTab === "library" + ? (featuredCreatures ?? []) + : (userCreatures ?? []), + }, { id: "skybox", label: "Skybox", icon: faSun, items: demoSkyboxItems.value, }, - { - id: "nature", - label: "Nature", - icon: faTree, - engineCategory: FilterEngineCategories.SET_DRESSING, - items: - activeLibraryTab === "library" - ? (featuredNature ?? []) - : (userNature ?? []), - }, ]; // Combine all items for the "All" tab diff --git a/frontend/editor3d/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx b/frontend/editor3d/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx index 8649736a02..f181948b3e 100644 --- a/frontend/editor3d/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx +++ b/frontend/editor3d/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx @@ -223,7 +223,7 @@ export const ControlsTopButtons = () => { { disabled: !scene.value.isModified || - scene.value.ownerToken !== + scene.value.ownerToken === authentication.userInfo.value?.user_token, // save scene should be disabled if there are no changes label: "Save scene", diff --git a/frontend/editor3d/app/pages/PageEnigma/comps/OnboardingHelper.tsx b/frontend/editor3d/app/pages/PageEnigma/comps/OnboardingHelper.tsx index bd7936b0dd..40fd5ef348 100644 --- a/frontend/editor3d/app/pages/PageEnigma/comps/OnboardingHelper.tsx +++ b/frontend/editor3d/app/pages/PageEnigma/comps/OnboardingHelper.tsx @@ -38,7 +38,7 @@ export const OnboardingHelper = () => { leaveFrom="opacity-100" leaveTo="opacity-0" > -
+

Hold