Skip to content

Share and save custom layouts - #229

Open
mxtmx wants to merge 3 commits into
acmerobotics:masterfrom
6165-MSET-Cuttlefish:layout-sharing
Open

mxtmx wants to merge 3 commits into
acmerobotics:masterfrom
6165-MSET-Cuttlefish:layout-sharing

Conversation

@mxtmx

@mxtmx mxtmx commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Custom layouts can be shared as a short text code or a link, and saved under a name.

  • Sharing: a code lists each view by name with its grid position, so it can be edited by hand. Paste a code or link into the Share or Save Layout dialog, or open the link, then press Apply. A code that names a view this dashboard doesn't have, or comes from a newer code format, is rejected with a message saying so.
  • Saving: saved layouts are kept in the browser and appear in the layout list at the top of the page. Picking one loads it, and the list marks it as edited once it changes. Saving under an existing name replaces that entry. Each tab keeps track of its own layout.
  • Limits: codes are capped at 64 views, 100 rows per view, a bottom edge at row 300 and 3600 grid cells in total, since views like the field redraw a canvas of their own size on every telemetry packet.

A view's name in a code comes from its ConfigurableView member, lowercased without _VIEW and underscores (HARDWARE_CONFIG_VIEW is hardwareconfig), so new views need no extra step and the open PRs that add views still build. Renaming a member breaks codes that use it.

layout-share-demo.mp4

Custom layouts can be exported as a short text code or a link, and
imported by pasting either one or by opening the link. The code lists
each view with its grid position, so it is stable across versions and
editable by hand.
A custom layout can be saved under a name from the share modal. Saved
layouts are kept in localStorage as their share codes and appear in a
group at the end of the layout list in the header. Picking one loads it
into the custom layout; the list marks it as edited once it changes.
mxtmx added a commit to 6165-MSET-Cuttlefish/slothboard that referenced this pull request Sep 23, 2026
# Conflicts:
#	client/src/components/Dashboard/Dashboard.tsx
#	client/src/store/middleware/storageMiddleware.ts
mxtmx added a commit to 6165-MSET-Cuttlefish/slothboard that referenced this pull request Sep 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant