module and sub,odule creation fix

This commit is contained in:
Yared Yemane 2026-04-09 00:39:20 -07:00
parent d4b1bf0813
commit 189077e946

View File

@ -302,6 +302,13 @@ function MediaPreviewCard({
) )
} }
function nextMissingPositive(values: number[]): number {
const existing = new Set(values.filter((n) => Number.isFinite(n) && n > 0))
let candidate = 1
while (existing.has(candidate)) candidate += 1
return candidate
}
export function HumanLanguagePage() { export function HumanLanguagePage() {
const navigate = useNavigate() const navigate = useNavigate()
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
@ -477,11 +484,10 @@ export function HumanLanguagePage() {
const key = `module-${courseId}-${level}` const key = `module-${courseId}-${level}`
setCreatingKey(key) setCreatingKey(key)
try { try {
const maxExisting = modules const usedNumbers = modules
.map((m) => parseModuleNumber(m.title)) .map((m) => parseModuleNumber(m.title))
.filter((v): v is number => v !== null) .filter((v): v is number => v !== null && v > 0)
.reduce((acc, n) => Math.max(acc, n), 0) const next = nextMissingPositive(usedNumbers)
const next = maxExisting + 1
const title = `Module-${next}` const title = `Module-${next}`
await createHumanLanguageLesson({ await createHumanLanguageLesson({
course_id: courseId, course_id: courseId,
@ -513,11 +519,11 @@ export function HumanLanguagePage() {
const key = `submodule-${courseId}-${level}-${moduleNo}` const key = `submodule-${courseId}-${level}-${moduleNo}`
setCreatingKey(key) setCreatingKey(key)
try { try {
const maxExisting = existingSubModules const usedNumbers = existingSubModules
.map((s) => parseSubModuleNumber(s.title)) .map((s) => parseSubModuleNumber(s.title))
.filter((v): v is { module: number; sub: number } => v !== null && v.module === moduleNo) .filter((v): v is { module: number; sub: number } => v !== null && v.module === moduleNo)
.reduce((acc, item) => Math.max(acc, item.sub), 0) .map((item) => item.sub)
const next = maxExisting + 1 const next = nextMissingPositive(usedNumbers)
const title = `Module-${moduleNo}.${next}` const title = `Module-${moduleNo}.${next}`
await createHumanLanguageLesson({ await createHumanLanguageLesson({
course_id: courseId, course_id: courseId,