Refactor: break up app.js into smaller modules #128

Open
opened 2026-02-23 20:51:05 +01:00 by clawbot · 0 comments
Collaborator

The static/js/app.js file (581 lines) contains all frontend JavaScript in a single file:

  • Global utilities store (formatting, status badges, clipboard, scroll helpers)
  • Copy button component
  • Confirm action component
  • Auto-dismiss alert component
  • Relative time component
  • App detail page component (~150 lines, polling, log fetching)
  • Deployment card component (~80 lines)
  • Deployments history page component (~100 lines)
  • Dashboard component
  • Legacy global utilities

Proposal: split into logical modules loaded via separate <script> tags:

  • utils.js — global store + legacy compat
  • components.js — small reusable components (copy, confirm, dismiss, relative time)
  • app-detail.js — app detail page logic
  • deployment.js — deployment card + deployments history page
  • dashboard.js — dashboard page logic

All files are plain JS (no bundler), loaded in order via <script> tags in base.html.

The `static/js/app.js` file (581 lines) contains all frontend JavaScript in a single file: - Global utilities store (formatting, status badges, clipboard, scroll helpers) - Copy button component - Confirm action component - Auto-dismiss alert component - Relative time component - App detail page component (~150 lines, polling, log fetching) - Deployment card component (~80 lines) - Deployments history page component (~100 lines) - Dashboard component - Legacy global utilities Proposal: split into logical modules loaded via separate `<script>` tags: - `utils.js` — global store + legacy compat - `components.js` — small reusable components (copy, confirm, dismiss, relative time) - `app-detail.js` — app detail page logic - `deployment.js` — deployment card + deployments history page - `dashboard.js` — dashboard page logic All files are plain JS (no bundler), loaded in order via `<script>` tags in `base.html`.
clawbot self-assigned this 2026-02-23 20:51:05 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/upaas#128
No description provided.