feat: Add skeleton loading UI components for various screens
- Implemented `Skeleton.kt` for loading placeholders in the app, including lesson cards, schedule, overview, and subjects. - Introduced `Undo.kt` to manage undo actions with a snackbar interface. - Created `WeekWidget.kt` for a widget displaying the week's schedule, including dynamic updates based on the current timetable. - Added various splash animations in the `animator` directory for a smooth launch experience. - Designed drawable resources for the widget and splash screen, including icons for city and room moves. - Defined XML resources for widget configuration and photo paths.
This commit is contained in:
@@ -31,6 +31,10 @@ function lessonOut(lesson, group, people, date, status, calendar, week = null) {
|
||||
condition: lesson.condition,
|
||||
variant: lesson.variant,
|
||||
subgroup: lesson.subgroups.find((s) => s.group === group)?.label || null,
|
||||
// "Немецкий язык" when part of the group studies German and part French (see `choices`).
|
||||
option: lesson.option || null,
|
||||
// "foreign": for foreign students only (Russian as a foreign language); "local": for the others.
|
||||
audience: lesson.audience || null,
|
||||
groups: lesson.groups,
|
||||
uncertain: status === "maybe",
|
||||
raw: lesson.raw,
|
||||
@@ -159,6 +163,10 @@ export function timetable({ file, schedule, calendar, group, from, days, range,
|
||||
...extra.map((e) => e.lesson.subgroups?.find((s) => s.group === group)?.label).filter(Boolean),
|
||||
]),
|
||||
].sort((a, b) => a.localeCompare(b, "ru", { numeric: true })),
|
||||
// What parts of the group choose between: [["Немецкий язык", "Французский язык"]].
|
||||
choices: (schedule.choices || []).filter((c) => c.groups.includes(group)).map((c) => c.options),
|
||||
// Some lessons are for foreign students only, or for the others: worth asking which one you are.
|
||||
audience: lessons.some((l) => l.audience),
|
||||
bells: calendar?.bells || [],
|
||||
from,
|
||||
days: out,
|
||||
|
||||
Reference in New Issue
Block a user