Commit graph

8 commits

Author SHA1 Message Date
Zaldimmar
6ec2fb240a Add person detail page and link people tiles to it
GET /api/people/:id returns a published person's profile, public
roles (current and past), published events they were billed at or
hosted, and public awards, each under the same visibility rules its
own page applies. public_phone is never sent.

PersonDetail renders it at /people/:id, the route personHref already
pointed at. PeopleTiles links a tile with a people id to that page;
an expandable tile keeps its details panel and the panel carries a
"View full profile" link instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 05:05:45 -05:00
Zaldimmar
5ed7994a64 Add recurring series to events
A Series checkbox under When opens a panel for the schedule:
weekly on chosen weekdays, monthly by date, or monthly by weekday
position, every N weeks or months, with meeting times and an
optional meeting count. starts_on anchors the schedule and ends_on
bounds it, so effective_status needs no change.

Occurrences are derived, not stored. src/lib/eventSeries.ts builds
the schedule label shown on cards and the event page, and the
upcoming dates listed on the event page.

Migration 016 adds the columns; the CRUD engine gains a time type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:46:49 -05:00
Zaldimmar
1b2af2bfbd Fix the remaining type errors in src/
- Declare the --ig-fill custom property on React's CSSProperties once,
  instead of casting the style prop in Footer, Home and EventList-Cards.
- Type Footer's Get_In_Touch links as internal or external, so the
  external branch type-checks.
- Pass undefined rather than null for an absent gradient (Home) and
  Instagram URL (EventList-Cards).

tsc --noEmit is now clean, with and without --noImplicitAny.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:33:21 -05:00
Zaldimmar
2428f4412a Type src/ against API and database shapes, fixing implicit anys
Adds .d.ts declarations beside the untyped JS modules imported from
TS (api.js, navConfig.js, adminSchema.js, adminNav.js, src/data/*),
with shapes taken from the server routes and migrations. get/post/
patch/del now return unknown unless the caller names the response.

Fixes found along the way:
- website/email/instagram are bare strings from splitLinks, not Link
  objects; OrganizationDetail's website and email pills rendered with
  no href or label and now link correctly.
- The chapter map falls back to FALLBACK_COLOR for a region with no
  colour instead of painting its tiles black.

Adds defineSection() so each page manifest entry's props are checked
against its own Component.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:13:46 -05:00
Zaldimmar
1d84400aef v1.5 - history and timeline as well as many datastructure updates added, polished, fixes 2026-09-25 02:38:51 -05:00
Zaldimmar
1f0aa3078f v1.4 - added admin page and auth 2026-09-25 02:36:49 -05:00
Zaldimmar
5efdafbb97 v1.3 - added an sqlite db and built data structure 2026-09-25 02:35:46 -05:00
Zaldimmar
b0fba52c0e v1.2 - added react router 2026-09-25 02:34:15 -05:00