mirror of
https://github.com/supabase/supabase.git
synced 2026-10-19 16:19:10 +03:00
27 lines
929 B
TypeScript
27 lines
929 B
TypeScript
export const DEFAULT_SECTION_ORDER = ['branches', 'connect', 'usage', 'advisor', 'custom-report']
|
|
|
|
/**
|
|
* Reconciles a stored section order with the canonical list.
|
|
* Preserves user ordering for known sections, inserts missing
|
|
* sections at their default-relative position.
|
|
*/
|
|
export function mergeSectionOrder(stored: string[]): string[] {
|
|
const known = stored.filter((id) => DEFAULT_SECTION_ORDER.includes(id))
|
|
const missing = DEFAULT_SECTION_ORDER.filter((id) => !known.includes(id))
|
|
|
|
if (missing.length === 0 && known.length === stored.length) return stored
|
|
|
|
const merged = [...known]
|
|
for (const id of missing) {
|
|
const defaultIndex = DEFAULT_SECTION_ORDER.indexOf(id)
|
|
const nextKnown = DEFAULT_SECTION_ORDER.slice(defaultIndex + 1).find((c) => merged.includes(c))
|
|
|
|
if (!nextKnown) {
|
|
merged.push(id)
|
|
} else {
|
|
merged.splice(merged.indexOf(nextKnown), 0, id)
|
|
}
|
|
}
|
|
return merged
|
|
}
|