Skip to content

Conversation

@Alex-Tideman
Copy link
Collaborator

@Alex-Tideman Alex-Tideman commented Nov 14, 2025

Description & motivation 💭

Allow self-hosted users to set an environment name of development/test/staging to very easily distinguish the Temporal Web UI when multiple environments are used. It can be frustrating to navigate to multiple tabs with different environments and quickly understanding which one you are looking at. If no environment name is set, it will default to the black background.

This also includes refactoring our main layout to use Svelte5.

Screenshots (if applicable) 📸

Screenshot 2025-11-13 at 1 00 06 PM Screenshot 2025-11-13 at 12 55 25 PM Screenshot 2025-11-13 at 12 55 51 PM Screenshot 2025-11-14 at 12 02 07 PM Screenshot 2025-11-14 at 12 02 30 PM Screenshot 2025-11-14 at 12 02 56 PM

Design Considerations 🎨

Testing 🧪

How was this tested 👻

  • Manual testing
  • E2E tests added
  • Unit tests added

Steps for others to test: 🚶🏽‍♂️🚶🏽‍♀️

Checklists

Draft Checklist

Merge Checklist

Issue(s) closed

Docs

Any docs updates needed?

@Alex-Tideman Alex-Tideman requested review from a team and rossedfort as code owners November 14, 2025 19:04
@vercel
Copy link

vercel bot commented Nov 14, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
holocene Ready Ready Preview, Comment Dec 17, 2025 5:47pm

@Alex-Tideman Alex-Tideman changed the title Env config UI Environment Colors Nov 14, 2025
!isCloud && environmentName && environmentName.trim().length > 0,
);
</script>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ Argument of type '{ accesskey?: string | null | undefined; autocapitalize?: "on" | "off" | "none" | "characters" | "sentences" | "words" | null | undefined; autofocus?: boolean | null | undefined; class: ClassValue | null; ... 426 more ...; onfullscreenerrorcapture?: EventHandler<...> | ... 1 more ... | undefined; }' is not assignable to parameter of type 'HTMLProps<"nav", HTMLAttributes>'.

@@ -0,0 +1,6 @@
export const setValidEnvironmentName = (name: string | undefined): string => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ⚠️ 'name' is possibly 'undefined'.

@temporal-cicd
Copy link
Contributor

temporal-cicd bot commented Dec 17, 2025

Warnings
⚠️

📊 Strict Mode: 10 errors in 6 files (0.7% of 1342 total)

src/lib/theme/variables.ts (3)
  • L236:16: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ readonly '--color-text-black': { readonly light: "space-black"; readonly dark: "space-black"; }; readonly '--color-text-white': { readonly light: "off-white"; readonly dark: "off-white"; }; ... 52 more ...; readonly '--color-border-focus-danger': { ...; }; }'.
  • L237:2: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<--${string}, ${number} ${number} ${number}>'.
  • L238:2: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<--${string}, ${number} ${number} ${number}>'.
src/lib/services/settings-service.ts (1)
  • L77:2: Type '{ auth: { enabled: boolean; options: string[]; }; bannerText: string; baseUrl: string | null; codec: { endpoint: string; passAccessToken: boolean | undefined; includeCredentials: boolean | undefined; customErrorMessage: { ...; }; }; ... 17 more ...; version: string; }' is not assignable to type 'Settings'.
src/lib/utilities/environment-name.ts (1)
  • L1:14: 'name' is possibly 'undefined'.
src/lib/components/bottom-nav.svelte (2)
  • L154:55: Argument of type 'string | null' is not assignable to parameter of type 'string'.
  • L160:34: Type 'string | null' is not assignable to type 'string'.
src/lib/holocene/navigation/navigation-container.svelte (1)
  • L36:3: Argument of type '{ accesskey?: string | null | undefined; autocapitalize?: "on" | "off" | "none" | "characters" | "sentences" | "words" | null | undefined; autofocus?: boolean | null | undefined; class: ClassValue | null; ... 426 more ...; onfullscreenerrorcapture?: EventHandler<...> | ... 1 more ... | undefined; }' is not assignable to parameter of type 'HTMLProps<"nav", HTMLAttributes>'.
src/routes/(app)/+layout.svelte (2)
  • L65:23: Argument of type '(namespace: string) => { namespace: string; onClick: (namespace: string) => void; }' is not assignable to parameter of type '(value: string | null | undefined, index: number, array: (string | null | undefined)[]) => { namespace: string; onClick: (namespace: string) => void; }'.
  • L246:29: '$authUser' is possibly 'null'.

Generated by 🚫 dangerJS against f6be65c

@Alex-Tideman Alex-Tideman added dependencies Pull requests that update a dependency file waiting Waiting on further refactors and removed dependencies Pull requests that update a dependency file labels Dec 17, 2025
@Alex-Tideman Alex-Tideman marked this pull request as draft December 17, 2025 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting Waiting on further refactors

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants