module and sub,odule creation fix
This commit is contained in:
parent
d4b1bf0813
commit
189077e946
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user