Files
classroomio/apps/dashboard/src/lib/features/settings/utils/store.ts
T
Rotimi Best 81294a47f9 feat: live class sessions, CE workflow, and docs (#683)
Adds live-class session scheduling on lessons (join link, date/time,
timezone) with automatic 24h and 1h reminder emails plus a calendar
invite (.ics), a time-change notification with an updated invite, a
teacher-authored welcome email and session invite on enrollment, and a
"Notify students" quiz nudge.

LMS gets an upcoming live-sessions card and Join buttons, plus a
reusable live-session card component (3 states) in @cio/ui with a
Storybook story. The sidebar content tree now reflects sequential
progression locking like the content list, and the course-completion
confetti regression is fixed.

Org-based emails no longer reference ClassroomIO by name. Docs add
live-class, welcome-email, and course-progression guides, expand the
certificates guide (design, signatures, corrected labels), move
plan-required callouts to the top, flatten how-to-guides to the docs
root with redirects, and add screenshots. Includes an add-docs-image
skill.
2026-06-22 05:43:48 +01:00

31 lines
1.1 KiB
TypeScript

import type { Writable } from 'svelte/store';
import { writable } from 'svelte/store';
import type { OrgLandingPageJson } from '$lib/utils/types/org';
import type { LandingSectionKey } from '@cio/ui/custom/org-landing-page';
import { createDefaultLandingPageSettings } from '$features/org/utils/landing-page';
export const landingPageSettings: Writable<OrgLandingPageJson> = writable(createDefaultLandingPageSettings());
/**
* Section currently selected in the landing-page editor preview. Shared between
* the left rail (which switches its panel based on this) and the preview wrappers
* (which render the outline + cap when their sectionKey matches). `null` means
* no section is selected — the editor shows the section list.
*/
export const landingPageEditorSelection: Writable<LandingSectionKey | null> = writable(null);
type SettingsHeaderAction = {
label: string;
disabled: boolean;
loading: boolean;
onClick: null | (() => void | Promise<void>);
};
export const settingsHeaderAction: Writable<SettingsHeaderAction> = writable({
label: 'Save',
disabled: true,
loading: false,
onClick: null
});