Skip to content

Commit eeeb61e

Browse files
committed
fix: hotfix for safe project id generation
1 parent 7bbf330 commit eeeb61e

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/features/Projects/stores/slices/project.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -460,10 +460,19 @@ export const createProjectSlice: StateCreator<
460460
},
461461

462462
generateId(prefix) {
463-
const countWithPrefix = get().getSavedProjects(prefix).length;
464-
const id = `${prefix}-${countWithPrefix + 1}`;
465-
466-
return id;
463+
const keys = get().getSavedProjects(prefix);
464+
const nums = keys
465+
.map((k) => {
466+
const m = k.match(`^${prefix}-(\\d+)$`);
467+
return m ? parseInt(m[1], 10) : NaN;
468+
})
469+
.filter((n) => !Number.isNaN(n));
470+
471+
const used = new Set(nums);
472+
let i = 1;
473+
while (used.has(i)) i++;
474+
475+
return `${prefix}-${i}`;
467476
},
468477

469478
generateName(id, prefix, isShared = false) {

0 commit comments

Comments
 (0)