Fix toolbox persistence, table evaluation, and onboarding panel styling
Some checks failed
Deploy Sokko G / deploy (push) Failing after 2s
Some checks failed
Deploy Sokko G / deploy (push) Failing after 2s
This commit is contained in:
parent
0171c9fc98
commit
184314d913
9 changed files with 119 additions and 32 deletions
|
|
@ -61,13 +61,14 @@ export function useToolboxActions({ store, notify, creationTemplate, setConfirmM
|
|||
|
||||
function deleteToolbox(id) {
|
||||
const toolbox = store.toolboxes.find((item) => item.id === id);
|
||||
store.removeToolboxModuleData(toolbox);
|
||||
store.setToolboxes(store.toolboxes.filter((item) => item.id !== id));
|
||||
const nextToolboxes = store.toolboxes.filter((item) => item.id !== id);
|
||||
const nextModuleData = { ...store.moduleData };
|
||||
(toolbox?.modules || []).forEach((module) => delete nextModuleData[`${id}:${module.id}`]);
|
||||
const nextLinks = { ...store.links };
|
||||
Object.entries(nextLinks).forEach(([gameId, toolboxId]) => {
|
||||
if (toolboxId === id) delete nextLinks[gameId];
|
||||
});
|
||||
store.setLinks(nextLinks);
|
||||
return store.persistToolboxSnapshot(nextToolboxes, nextLinks, nextModuleData);
|
||||
}
|
||||
|
||||
function linkToolboxToGame(gameId, toolboxId) {
|
||||
|
|
@ -146,13 +147,19 @@ export function useToolboxActions({ store, notify, creationTemplate, setConfirmM
|
|||
});
|
||||
imported.moduleOrder = remapModuleOrderIds(imported.moduleOrder, moduleIdMap);
|
||||
const normalizedImport = normalizeToolbox(imported);
|
||||
if (!store.setToolboxes([normalizedImport, ...store.toolboxes])) return null;
|
||||
const nextModuleData = { ...store.moduleData };
|
||||
Object.entries(payload.modules || {}).forEach(([oldId, data]) => {
|
||||
const nextId = moduleIdMap.get(oldId);
|
||||
const module = normalizedImport.modules.find((item) => item.id === nextId);
|
||||
if (nextId) store.updateModuleData(normalizedImport.id, nextId, data, module?.type);
|
||||
if (nextId) {
|
||||
const compact = compactModuleDataForStorage(module?.type, data);
|
||||
if (compact) nextModuleData[`${normalizedImport.id}:${nextId}`] = compact;
|
||||
}
|
||||
});
|
||||
if (gameId) linkToolboxToGame(gameId, normalizedImport.id);
|
||||
const nextLinks = { ...store.links };
|
||||
if (gameId) nextLinks[gameId] = normalizedImport.id;
|
||||
const saved = await store.persistToolboxSnapshot([normalizedImport, ...store.toolboxes], nextLinks, nextModuleData);
|
||||
if (!saved) return null;
|
||||
return normalizedImport;
|
||||
}
|
||||
|
||||
|
|
@ -181,6 +188,7 @@ export function useToolboxActions({ store, notify, creationTemplate, setConfirmM
|
|||
const nextToolboxId = toolboxIdMap.get(oldToolboxId);
|
||||
if (nextToolboxId) nextLinks[gameId] = nextToolboxId;
|
||||
});
|
||||
const nextModuleData = { ...store.moduleData };
|
||||
Object.entries(payload.modules).forEach(([key, data]) => {
|
||||
const [oldToolboxId] = key.split(":");
|
||||
const nextToolboxId = toolboxIdMap.get(oldToolboxId);
|
||||
|
|
@ -188,11 +196,10 @@ export function useToolboxActions({ store, notify, creationTemplate, setConfirmM
|
|||
const toolbox = importedToolboxes.find((item) => item.id === nextToolboxId);
|
||||
const module = toolbox?.modules.find((item) => item.id === nextModuleId);
|
||||
const compact = compactModuleDataForStorage(module?.type, data);
|
||||
if (nextToolboxId && nextModuleId && compact) store.updateModuleData(nextToolboxId, nextModuleId, compact, module?.type);
|
||||
if (nextToolboxId && nextModuleId && compact) nextModuleData[`${nextToolboxId}:${nextModuleId}`] = compact;
|
||||
});
|
||||
store.setToolboxes([...importedToolboxes, ...store.toolboxes]);
|
||||
store.setLinks(nextLinks);
|
||||
store.refreshQuota();
|
||||
const saved = await store.persistToolboxSnapshot([...importedToolboxes, ...store.toolboxes], nextLinks, nextModuleData);
|
||||
if (!saved) throw new Error("Impossible d'enregistrer l'import global.");
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue