Files
TREK/client/src/help/contexts/tripDays.ts
T
Maurice 4346d7f2c1 feat(help): in-app help center with per-screen guides and pictures
A help icon on every screen opens a panel with the screen's overview, its
sub-screens, task guides with a framed picture per step, search across guides
and the wiki, and a switch to any other screen's help. Guides exist for the
dashboard, Vacay, Atlas, Collections, Journey (list, journal, studio), Settings
(all tabs), Admin (all tabs) and the trip frame; the trip's own screens are
in progress. Pictures are produced by Playwright (client/e2e/help), texts in
all 23 languages.
2026-09-24 14:05:42 +02:00

43 lines
2.5 KiB
TypeScript

import type { HelpContext, HelpGuide } from '../types'
/**
* Help for the days column of a trip's plan: the day cards, the stops on them,
* their order and times, notes, the day's route, and everything that leaves
* the plan (PDF, calendar, GPX). Bookings and transports show up here too, so
* one guide reads them and points at the screens that create them.
* A screen under `trip`; the step actions live in `e2e/help/trip-days.guide.ts`.
*/
const DAYS = 'Day-Plans-and-Notes'
const MAP = 'Map-Features'
const guide = (
id: string, icon: HelpGuide['icon'], size: HelpGuide['size'], steps: number, tips: number,
docs: HelpGuide['docs'], related: string[], result = false,
): HelpGuide => ({ id, context: 'trip-days', icon, size, steps, tips, media: { steps: true, result }, docs, related })
export const tripDaysGuides: HelpGuide[] = [
guide('read-day-plan', 'eye', 'guide', 5, 2, { slug: DAYS, anchor: 'day-timeline' }, ['bookings-in-plan', 'day-route']),
guide('place-onto-day', 'calendarCheck', 'guide', 4, 3, { slug: DAYS, anchor: 'assigning-places-to-a-day' }, ['place-to-open-day', 'reorder-stops', 'undo-change'], true),
guide('reorder-stops', 'repeat', 'quick', 4, 2, { slug: DAYS, anchor: 'assigning-places-to-a-day' }, ['place-onto-day', 'set-stop-times', 'lock-stop']),
guide('set-stop-times', 'clock', 'quick', 3, 3, { slug: DAYS, anchor: 'day-timeline' }, ['reorder-stops', 'edit-place']),
guide('remove-from-day', 'minusCircle', 'quick', 2, 2, { slug: DAYS, anchor: 'assigning-places-to-a-day' }, ['delete-place', 'undo-change']),
guide('lock-stop', 'lock', 'quick', 2, 2, { slug: DAYS, anchor: 'toolbar-actions' }, ['day-route', 'reorder-stops']),
guide('day-note', 'pencil', 'quick', 4, 2, { slug: DAYS, anchor: 'day-notes' }, ['read-day-plan'], true),
guide('day-route', 'route', 'guide', 5, 3, { slug: MAP, anchor: 'route-lines' }, ['lock-stop', 'read-day-plan']),
guide('manage-days', 'calendarDays', 'quick', 4, 2, { slug: DAYS, anchor: 'the-day-plan-sidebar' }, ['edit-trip']),
guide('bookings-in-plan', 'ticket', 'guide', 5, 2, { slug: DAYS, anchor: 'multi-day-reservations' }, ['read-day-plan']),
guide('export-plan', 'download', 'quick', 4, 3, { slug: MAP, anchor: 'exporting-a-trip-as-gpx' }, ['calendar-feed']),
]
export const tripDaysContext: HelpContext = {
id: 'trip-days',
parent: 'trip',
route: '/trips/:id?tab=plan',
icon: 'calendarDays',
bullets: 6,
guides: tripDaysGuides.map(g => g.id),
docs: [{ slug: DAYS }, { slug: MAP }],
hero: true,
}