after ok is clicked open the mine tab and category of uploaded object

This commit is contained in:
bflatastic committed 2025-04-21 12:22:02 +07:00
1 parent 2f52ccf05c
commit 3db889cdbc
2 files changed
+38 -3

No files matched your search

@@ -19,6 +19,7 @@ import {
CHARACTER_MIXAMO_FILE_TYPE,
IMAGEPLANE_FILE_TYPE,
} from "~/enums";
import { assetModalVisible } from "~/pages/PageEnigma/signals";
interface Props {
onClose: () => void;
@@ -43,6 +44,15 @@ const categoryFileTypes: Partial<Record<FilterEngineCategories, string[]>> = {
[FilterEngineCategories.CREATURE]: Object.values(OBJECT_FILE_TYPE),
};
// Map engine categories to asset modal tabs
const categoryToAssetTab: Partial<Record<FilterEngineCategories, string>> = {
[FilterEngineCategories.OBJECT]: "objects",
[FilterEngineCategories.CHARACTER]: "character",
[FilterEngineCategories.IMAGE_PLANE]: "image-planes",
[FilterEngineCategories.LOCATION]: "sets",
[FilterEngineCategories.CREATURE]: "creatures",
};
// Excluded category options for the upload modal
const categoryOptions = Object.entries(FilterEngineCategories)
.filter(
@@ -139,10 +149,25 @@ export function UploadModal3D({
case UploaderStates.success:
return (
<UploadSuccess
title={title}
title="3D model"
onOk={() => {
onSuccess();
onClose();
// Store the selected category and tab in sessionStorage
const assetTab = categoryToAssetTab[selectedCategory];
if (assetTab) {
sessionStorage.setItem(
"lastUploadedCategory",
selectedCategory,
);
sessionStorage.setItem("lastUploadedTab", assetTab);
// Reopen the asset modal
assetModalVisible.value = true;
} else {
// Clear any existing stored values if we don't have a valid tab
sessionStorage.removeItem("lastUploadedCategory");
sessionStorage.removeItem("lastUploadedTab");
}
}}
/>
);
@@ -92,14 +92,24 @@ export const AssetModal = () => {
useEffect(() => {
if (assetModalVisible.value) {
// Check for stored category and tab from upload
const lastUploadedTab = sessionStorage.getItem("lastUploadedTab");
if (lastUploadedTab) {
setActiveLibraryTab("mine");
setActiveAssetTab(lastUploadedTab);
// Clear the stored values
sessionStorage.removeItem("lastUploadedTab");
sessionStorage.removeItem("lastUploadedCategory");
}
// Small delay to ensure the modal is fully mounted
const timer = setTimeout(() => {
searchInputRef.current?.focus();
}, 100);
return () => clearTimeout(timer);
}
return undefined; // Return for the false case
}, []);
return undefined;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [assetModalVisible.value]);
// Fetch objects for different categories
const {