Commit graph

1193 commits

Author SHA1 Message Date
Agent
8bcc3ac918 fix: orphan centering — switch inner grid to flex-wrap + justify-center
CSS grid + mx-auto centers the whole block but not orphan tiles within
their row (e.g. 5 tiles @1685x1342, the 2-tile row was left-aligned).
Switched to display:flex; flex-wrap:wrap; justify-content:center with
explicit width/height on each tile wrapper. This naturally centers every
row, including orphan rows with fewer tiles.

The computeUniformGrid algorithm is unchanged — still uniform px tile
sizes with aspect flexing in [3:4..16:9].
2026-08-11 16:30:51 -04:00
Agent
4b1e209262 feat: uniform-size tile grid with flex-fill aspect (PR-C1 plan v2)
Replaces the Jitsi-style mixed-row layout (~190 lines: partitions,
mixed-size rows, per-row aspect, penalty scoring) with a simple uniform
grid (~25 lines): all tiles identical px size, aspect flexes within
[3:4 .. 16:9], column count chosen to maximize area via key ordering
(overflow < waste < aspect closeness < -area).

Key changes:
- computeUniformGrid / UniformTileGrid replaces computeTileLayout/TileLayout
- TILE_ASPECT_MIN widened from 9/16 to 3/4 per @matt
- CSS grid with explicit px column/row tracks replaces flex rows
- mx-auto centers the grid block; orphan rows have same-size tiles
  (never full-width giants)
- Outer measuring container always mounted (bind:clientWidth/Height);
  inner grid gated on tileGrid
- Each tile wrapper: overflow-hidden rounded-2xl (grid cell sizes it)
- 'default' tile variant keeps min-h-0 h-full w-full (fills grid cell)

Per @matt's approved plan v2: flex-fill single rule everywhere, no
portrait special-casing, no mixed-size rows, uniform tiles, centered
block.
2026-08-11 16:25:55 -04:00
Agent
1b1e0169ff fix: two critical rendering bugs in mixed-size grid layout
Bug 1 — chicken-and-egg gating: '{:else if useMultiGrid && tileLayout}'
prevented the measuring container from ever mounting, because tileLayout
is undefined while gridWidth/gridHeight are 0, and the bind:clientWidth/
clientHeight are on the same div. Fix: always mount the measuring
container when useMultiGrid, gate only the rows with {#if tileLayout}.

Bug 2 — collapsed tile height: 'default' tile class lost aspect-video but
gained no replacement for intrinsic height. All children are absolutely
positioned (VideoCallTile 'absolute inset-0', profile fallback, badges,
label, pin button), so the div collapses to 0 height. Fix: add 'h-full'
to the default tile class so it fills the aspect-ratio wrapper.
2026-08-11 10:21:34 -04:00
Agent
d8dea9c4dd feat: Jitsi-style mixed-size tile grid sizing (PR-C1 rework)
Replaces the uniform grid-sizing helper (computeGridSize -> rows/cols)
with a Jitsi-inspired mixed-size layout algorithm (computeTileLayout).

Key changes:
- Tiles flex between 9:16 and 16:9 aspect ratio per row, matched to
  container dimensions
- Rows can have different tile counts (e.g. [2,1] for 3 participants,
  [3,2] for 5, [4,3] for 7)
- Last row with fewer tiles gets a wider (more landscape) aspect ratio
  while earlier rows stay more square-ish
- CSS grid replaced with flex rows; each tile's aspect-ratio set via
  inline style (no more hardcoded aspect-video)
- Container dimensions bound via bind:clientWidth/clientHeight
- Dead {:else} branch (always-true useMultiGrid) removed
- Overflow penalty, whitespace penalty, and balance penalty ensure
  reasonable layouts at all tile counts

Per @matt's PR review feedback: read jitsi-meet source
(react/features/video-layout/functions.web.ts,
react/features/filmstrip/functions.web.ts) for the tile sizing
approach.
2026-08-11 10:13:05 -04:00
Agent
664a57d4eb feat: adaptive video grid sizing (PR-C1)
Add computeGridSize helper in call.ts that computes optimal row/column
counts for a video tile grid given tile count and container dimensions,
maximizing tile size while maintaining ~16:9 cells.

Apply via computed grid-template-columns/rows on the multi-grid path
(no-spotlight) in VideoCallContent.svelte, replacing the fixed
grid-cols-1 / grid-cols-1 sm:grid-cols-2 heuristic. The multi-grid now
handles all tile counts from 1 to 12+ smoothly.

- computeGridSize(tileCount, containerWidth, containerHeight) -> GridSize
- Container dimensions bound via clientWidth/clientHeight
- useMultiGrid: dropped the > 2 check, now !useSpotlightLayout
- gridStyle: computed grid-template-columns/rows string from gridSize
- Scope: multi-grid only, no spotlight/strip/breakpoint changes
2026-08-05 14:39:01 -04:00
Jon Staab
91a8995a98 Stop recommending relay.tools 2026-08-02 07:13:43 -07:00
Jon Staab
934f1cdf10 Optimize deriveUserItem, avoid double load of quotes 2026-07-30 09:50:41 -07:00
Jon Staab
2a5849afcb Fix tooltip z index 2026-07-29 17:30:59 -07:00
Jon Staab
9a80d059bb Migrate to new welshman 2026-07-29 15:52:13 -07:00
Jon Staab
d02e0ed56a Add hosting nav item 2026-07-29 15:49:59 -07:00
Jon Staab
954a11b923 Fix nav safe are inset, qr code reactivity 2026-07-29 11:00:26 -07:00
Jon Staab
6fed1019df Perf optimizations for chat rooms 2026-07-27 17:13:14 -07:00
Jon Staab
8953b0e04d Fix agent errors 2026-07-27 16:43:54 -07:00
Jon Staab
a2c5a8e2ff Clean up convention violations, dead code, and daisyUI leftovers 2026-07-27 15:38:23 -07:00
Jon Staab
c0c8354a76 Remove dead CSS left over from the app.css split and fix emoji button hit target 2026-07-27 15:25:31 -07:00
Jon Staab
ed61081b01 Fix key backup gating, mention alerts toggle, and silent load failures 2026-07-27 15:21:39 -07:00
Jon Staab
73f2fb0ec2 Fix stuck hosting error card and blocked billing portal redirect 2026-07-27 15:18:07 -07:00
Jon Staab
0f17e62e54 Fix pin references for non-addressable events, malformed shelf addresses, and profile links 2026-07-27 15:16:21 -07:00
Jon Staab
883528242c Fix space auth prompts, invite failures, and admin check spam
Cache admin checks per space with a ttl, stop retrying auth after a denial,
surface invites we couldn't fetch a claim for, and trim access delays.
2026-07-27 15:09:13 -07:00
Jon Staab
fe90a9f0ba Fix call mute failures, stale session writes, and leaked audio elements 2026-07-27 15:01:48 -07:00
Jon Staab
eae644ab3c Fix connection teardown and sync lifecycle on login 2026-07-27 14:57:02 -07:00
Jon Staab
ae5992c948 refactor h/non-h rooms into a single component 2026-07-27 14:11:46 -07:00
Jon Staab
17b0382c2e formatting 2026-07-27 13:48:54 -07:00
Jon Staab
2ffe51180b Fix new messages indicator when coming back to the tab 2026-07-27 13:38:45 -07:00
Jon Staab
cf938c6397 Bring caravel hosting in-app 2026-07-27 13:19:28 -07:00
Aditya Chaudhary
37e6dd6b7d chore: hide space menu scrollbars while keeping scroll. (#328)
Reviewed-on: https://gitea.coracle.social/coracle/flotilla/pulls/328
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-21 18:06:46 +00:00
Aditya Chaudhary
2d6810725f fix: clear space badge when navigating to a space (#327)
Reviewed-on: https://gitea.coracle.social/coracle/flotilla/pulls/327
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-21 18:05:39 +00:00
Aditya Chaudhary
1eebe1698a feat: add room invite links with combined space and room join flow (#319)
Reviewed-on: https://gitea.coracle.social/coracle/flotilla/pulls/319
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-20 23:35:24 +00:00
Aditya Chaudhary
16a446095a fix(video): show avatar tiles for audio-only and camera-off callers (#325)
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-20 23:34:06 +00:00
Aditya Chaudhary
caa16b6770 chore: improve mobile UI, zap modals, and interaction polish (#316)
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-15 21:23:43 +00:00
Jon Staab
e1c439fb6b Publish events signed by the relay to the relay 2026-07-10 08:17:01 -07:00
Jon Staab
e9f896f5ef Tweak side nav sections 2026-07-08 15:20:16 -07:00
Jon Staab
3a6be2fc92 Fix nav safe are inset, qr code reactivity 2026-07-08 15:12:50 -07:00
Jon Staab
ba7a690d6f Make downloadText work on native 2026-07-08 14:53:49 -07:00
Jon Staab
47be12ff57 Bring back attemptRelayAccess for default spaces 2026-07-08 14:43:44 -07:00
Jon Staab
f7d0cb7413 remove claims from default space urls, fix universal link handlers 2026-07-08 14:33:25 -07:00
Jon Staab
c139722261 Make content components reactive 2026-07-08 14:13:04 -07:00
Jon Staab
a254ec10f1 Fix new messages indicator 2026-07-08 11:53:57 -07:00
Jon Staab
8f7016b60c Back to hue-only role colors 2026-07-08 11:18:28 -07:00
Jon Staab
1581d909f0 Fix editing featured content, add menu to boards and ability to share boards/pins to chat 2026-07-08 11:18:28 -07:00
Jon Staab
269630efc2 Fix room suggestions based on platform relays 2026-07-08 11:18:28 -07:00
Aditya Chaudhary
f4fc9b82c3 feat: redesign mobile space sidebar with card-based layout. (#318)
Co-authored-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
Co-committed-by: Aditya Chaudhary <30+useradityaa@noreply.coracle.social>
2026-07-07 21:23:52 +00:00
Jon Staab
5843b3e33a Tweak room name display 2026-07-06 13:32:19 -07:00
Jon Staab
c694654417 Fix order for joining spaces 2026-07-06 13:31:58 -07:00
Jon Staab
9cb5e54aeb Avoid showing auth error before join dialog 2026-07-06 13:08:30 -07:00
Jon Staab
774e2da463 Add description to pins 2026-07-06 11:53:12 -07:00
Jon Staab
f20414975d Whenever our pubkey changes clear connections and reopen 2026-07-06 11:40:00 -07:00
Jon Staab
00b3fe054c Only show connection status in space join on error 2026-07-06 11:35:42 -07:00
Jon Staab
2f7276a92d Only show space join status if there's an error 2026-07-03 17:24:14 -07:00
Jon Staab
20369cc615 Split up spacejoin settings 2026-07-03 17:17:57 -07:00