Skip to content

Icons: updates and new icons for the side menu, run page and general improvements to the way they work #1825

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
Mar 26, 2025

Conversation

samejr
Copy link
Member

@samejr samejr commented Mar 26, 2025

Summary by CodeRabbit

  • New Features
    • Introduced several new scalable icons including middleware, function, and compact variants for tasks, environments, and runs.
  • Style
    • Updated SVG dimensions, color themes, and refined spacing/padding in navigation panels and menus for a more unified interface.
  • Refactor
    • Streamlined environment labels and text styling for improved clarity and consistency in the user experience.

Copy link

changeset-bot bot commented Mar 26, 2025

⚠️ No Changeset found

Latest commit: da94d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

coderabbitai bot commented Mar 26, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This pull request updates a wide range of SVG icon components and UI elements. Icon components now feature modified dimensions, viewBox values, and new path data, with several new icon variants added. UI components across menus, modals, and routes have received updates to class names, spacing, and layout. Additionally, environment title functions have been renamed, redundant functions removed, and Tailwind CSS color constants expanded. Core worker tracing in the TaskExecutor has also been standardized with new lifecycle hook accessory attributes.

Changes

File(s) Change Summary
apps/webapp/app/assets/icons/AttemptIcon.tsx, ConnectionIcons.tsx, EnvironmentIcons.tsx, MiddlewareIcon.tsx, PauseIcon.tsx, RunFunctionIcon.tsx, RunsIcon.tsx, TaskIcon.tsx, FunctionIcon.tsx Updated SVG dimensions, viewBox values, and path data. Introduced new icons (e.g., MiddlewareIcon, RunFunctionIcon, FunctionIcon) and smaller variants (e.g., TaskIconSmall, RunsIconSmall/ExtraSmall) for scalable designs.
apps/webapp/app/components/BlankStatePanels.tsx, EnvironmentLabel.tsx, RegenerateApiKeyModal.tsx, EnvironmentSelector.tsx, OrganizationSettingsSideMenu.tsx, SideMenu.tsx, SideMenuSection.tsx, Buttons.tsx Adjusted class names, spacing, and layout. Updated icon sizes, active state colors, and removed redundant helper functions, streamlining UI styling and component structure.
apps/webapp/app/components/runs/v3/RunIcon.tsx, SharedFilters.tsx, TaskTriggerSource.tsx,
apps/webapp/app/routes/.../route.tsx (multiple routes: tasks, apikeys, environment-variables.new, queues, runs, spans)
Refactored run and task flows by replacing icons with their smaller variants and updating sizing classes. Modified environment title function usage, removed environment filtering functions, and adjusted import types and error styling in task triggers.
apps/webapp/tailwind.config.js, packages/core/src/v3/workers/taskExecutor.ts Added new Tailwind color constants for icons and UI. Standardized tracing span naming in TaskExecutor and introduced a new private method for generating lifecycle hook accessory attributes.

Sequence Diagram(s)

sequenceDiagram
    participant T as Task Trigger
    participant R as RunIcon Component
    participant M as MiddlewareIcon
    participant RF as RunFunctionIcon
    participant F as FunctionIcon
    T->>R: Pass task type
    alt type is "task-middleware"
      R->>M: Return MiddlewareIcon
    else alt type is "task-fn-run"
      R->>RF: Return RunFunctionIcon
    else alt type is "task-hook-cleanup"
      R->>F: Return FunctionIcon
    else
      R->>R: Return default icon
    end
Loading

Suggested reviewers

  • matt-aitken

Poem

Hoppin' through the lines of code,
I found icons fresh and bold.
SVGs reborn with vibrant art,
New sizes make the interface smart.
I hop with joy in every byte,
As colors dance in pure delight.
Keep on codin’, day and night!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b1acd1a and da94d14.

📒 Files selected for processing (2)
  • apps/webapp/app/assets/icons/FunctionIcon.tsx (1 hunks)
  • apps/webapp/app/components/runs/v3/RunIcon.tsx (2 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

# Conflicts:
#	apps/webapp/app/components/runs/v3/RunIcon.tsx
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (5)
apps/webapp/app/assets/icons/MiddlewareIcon.tsx (1)

3-3: Consider adding explicit width and height attributes for consistency

For consistency with other icons like PauseIcon, consider adding explicit width and height attributes:

-    <svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <svg className={className} width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">

This helps ensure consistent rendering across browsers and aligns with the pattern used in other icons.

apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1)

3-3: Consider adding explicit width and height attributes for consistency

For consistency with other icons like PauseIcon, consider adding explicit width and height attributes:

-    <svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <svg className={className} width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">

This helps ensure consistent rendering across browsers and aligns with the pattern used in other icons.

apps/webapp/app/assets/icons/RunFunctionIcon.tsx (1)

3-3: Consider adding explicit width and height attributes for consistency

For consistency with other icons like PauseIcon, consider adding explicit width and height attributes:

-    <svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <svg className={className} width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">

This helps ensure consistent rendering across browsers and aligns with the pattern used in other icons.

apps/webapp/app/components/primitives/Buttons.tsx (1)

145-145: Refined icon height for small menu items

The change from h-4 (1rem/16px) to h-[1.125rem] (18px) provides a more precise sizing for icons in small menu items, improving the visual proportions.

Consider using a utility class like h-4.5 if available in your Tailwind configuration instead of the bracket notation for better consistency with other icon sizing changes in the PR.

apps/webapp/app/assets/icons/EnvironmentIcons.tsx (1)

80-90: Inconsistent corner radius between large and small icon variants

The larger icons use rx="2" while the smaller variants use rx="3". Consider standardizing the corner radius proportionally to maintain visual consistency.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 00586ff and d4a8e6d.

📒 Files selected for processing (29)
  • apps/webapp/app/assets/icons/AttemptIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/ConnectionIcons.tsx (2 hunks)
  • apps/webapp/app/assets/icons/EnvironmentIcons.tsx (1 hunks)
  • apps/webapp/app/assets/icons/MiddlewareIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/PauseIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/RunFunctionIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/RunsIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/TaskIcon.tsx (1 hunks)
  • apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1 hunks)
  • apps/webapp/app/components/BlankStatePanels.tsx (11 hunks)
  • apps/webapp/app/components/environments/EnvironmentLabel.tsx (4 hunks)
  • apps/webapp/app/components/environments/RegenerateApiKeyModal.tsx (1 hunks)
  • apps/webapp/app/components/navigation/EnvironmentSelector.tsx (1 hunks)
  • apps/webapp/app/components/navigation/OrganizationSettingsSideMenu.tsx (2 hunks)
  • apps/webapp/app/components/navigation/SideMenu.tsx (5 hunks)
  • apps/webapp/app/components/navigation/SideMenuSection.tsx (1 hunks)
  • apps/webapp/app/components/primitives/Buttons.tsx (1 hunks)
  • apps/webapp/app/components/runs/v3/RunIcon.tsx (2 hunks)
  • apps/webapp/app/components/runs/v3/SharedFilters.tsx (0 hunks)
  • apps/webapp/app/components/runs/v3/TaskTriggerSource.tsx (2 hunks)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx (1 hunks)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.apikeys/route.tsx (2 hunks)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.environment-variables.new/route.tsx (2 hunks)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx (3 hunks)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx (1 hunks)
  • apps/webapp/app/routes/resources.environments.$environmentId.regenerate-api-key.tsx (2 hunks)
  • apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx (2 hunks)
  • apps/webapp/tailwind.config.js (2 hunks)
  • packages/core/src/v3/workers/taskExecutor.ts (33 hunks)
💤 Files with no reviewable changes (1)
  • apps/webapp/app/components/runs/v3/SharedFilters.tsx
🧰 Additional context used
🧬 Code Definitions (4)
apps/webapp/app/components/environments/RegenerateApiKeyModal.tsx (1)
apps/webapp/app/components/primitives/Dialog.tsx (1)
  • DialogHeader (119-119)
packages/core/src/v3/workers/taskExecutor.ts (2)
packages/core/src/v3/semanticInternalAttributes.ts (1)
  • SemanticInternalAttributes (1-60)
packages/core/src/v3/index.ts (2)
  • SemanticInternalAttributes (21-21)
  • accessoryAttributes (55-55)
apps/webapp/app/components/runs/v3/RunIcon.tsx (3)
apps/webapp/app/assets/icons/MiddlewareIcon.tsx (1)
  • MiddlewareIcon (1-21)
apps/webapp/app/assets/icons/RunFunctionIcon.tsx (1)
  • RunFunctionIcon (1-21)
apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1)
  • WebhookTaskIcon (1-21)
apps/webapp/app/components/navigation/SideMenu.tsx (3)
apps/webapp/app/utils/pathBuilder.ts (9)
  • v3EnvironmentPath (140-148)
  • v3RunsPath (225-234)
  • v3BatchesPath (337-343)
  • v3SchedulesPath (268-274)
  • v3QueuesPath (306-312)
  • v3DeploymentsPath (371-377)
  • v3ApiKeysPath (158-164)
  • v3EnvironmentVariablesPath (166-172)
  • v3ProjectAlertsPath (182-188)
apps/webapp/app/components/navigation/SideMenuItem.tsx (1)
  • SideMenuItem (7-55)
apps/webapp/app/assets/icons/RunsIcon.tsx (1)
  • RunsIconExtraSmall (39-56)
⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: units / 🧪 Unit Tests
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: typecheck / typecheck
🔇 Additional comments (93)
apps/webapp/app/assets/icons/AttemptIcon.tsx (1)

5-16: Icon dimensions and design have been successfully updated.

The icon has been properly scaled up from 16x16 to 24x24 with a corresponding viewBox adjustment. The new path definition appears to be a letter "A" within a document/square shape, which is cleaner and more detailed than before. The use of fillRule/clipRule for the complex path and maintaining the currentColor fill for theming support are both good practices.

apps/webapp/tailwind.config.js (3)

152-152: Verify if previewEnv should match stagingEnv

The new previewEnv constant is set to the same value as stagingEnv (colors.amber[400]). Is this intentional? If these environments should have distinct visual identities, consider using a different color value.


155-169: Good addition of dedicated icon colors section

Adding a dedicated "Icon colors" section improves code organization and makes the purpose of these color constants clear. This aligns well with the PR objectives of improving icons.

I noticed several icon types share the same color values:

  • projectSettings, orgSettings, and docs all use colors.blue[500]
  • environmentVariables and batches both use colors.pink[500]

Is this color reuse intentional for visual grouping of related items?


230-243: Proper integration of new color constants into theme.colors

The new color constants have been correctly added to the theme.colors object, making them available throughout the application via Tailwind classes. This implementation follows best practices by:

  1. First defining the constants
  2. Then adding them to the theme configuration
  3. Using descriptive, semantic names that reflect their purpose

This approach will make icon styling more consistent and maintainable across the application.

apps/webapp/app/assets/icons/ConnectionIcons.tsx (8)

3-3: Improved icon dimensions for better consistency.

The viewBox has been updated from "0 0 20 18" to "0 0 24 24", which aligns with standard icon dimensions and provides better consistency with other icons in the system.


10-10: Proper repositioning of rectangle element.

The transform matrix has been adjusted to accommodate the new viewBox dimensions, ensuring the rectangle element is correctly positioned within the larger canvas.


16-16: Carefully updated path data for adjusted viewBox.

The path data has been recalculated to maintain proper visual appearance while fitting within the new 24x24 viewBox. The new path preserves the original design intent while ensuring proper scaling.


20-20: Repositioned checkmark for better visibility.

The checkmark path has been moved from "M6.5 6.75L9.5 9.75L16 3" to "M8.50002 9.75L11.5 12.75L18 6" to align properly within the new viewBox dimensions, improving its visibility and alignment with the surrounding elements.


32-32: Standardized viewBox for DisconnectedIcon.

Like the ConnectedIcon, the DisconnectedIcon's viewBox has been standardized to 24x24, ensuring consistency between both icons. This will help maintain proper alignment when these icons are used together in the UI.


36-36: Updated path data for bottom rectangle element.

The path data has been adjusted to fit within the new viewBox dimensions while maintaining the original visual design intent. The new coordinates ensure proper scaling and positioning.


42-42: Carefully recalculated complex path data.

The complex path representing the main icon shape has been recalculated to fit properly within the new viewBox. The updated coordinates maintain the visual design while ensuring proper scaling and positioning.


45-45: Added clear visual indicator for disconnected state.

The addition of a diagonal line from top-left to bottom-right with a red stroke provides a clear visual indicator of the disconnected state. This improves the icon's communicative value and aligns with common UI patterns for representing disconnection.

apps/webapp/app/assets/icons/PauseIcon.tsx (1)

3-16: SVG structure looks good with standardized dimensions

The icon has been properly updated with standardized 24x24 dimensions and a new path that represents a pause icon with two vertical bars inside a circle. The use of currentColor for the fill is good for theming and allows the icon to inherit color from its parent element.

apps/webapp/app/assets/icons/MiddlewareIcon.tsx (1)

1-21: Well-implemented new icon component

The implementation follows best practices by accepting a className prop, using currentColor for theming, and providing a proper viewBox. The icon's design with a rectangular border and "M" path is clean and visually distinctive.

apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1)

1-21: Well-implemented webhook task icon component

The component follows best practices with proper prop handling, SVG namespace, and using currentColor for theming. The design effectively represents a webhook with a distinctive shape that's appropriate for its purpose.

apps/webapp/app/assets/icons/RunFunctionIcon.tsx (1)

1-21: Well-implemented function icon component

The icon is cleanly implemented with a proper rectangle container and a function indicator inside. The code follows React component best practices with proper prop handling and uses currentColor appropriately for theming.

apps/webapp/app/assets/icons/RunsIcon.tsx (3)

5-15: Improved SVG path rendering with fillRule and clipRule properties.

Adding these SVG properties improves path rendering for complex shapes and follows best practices for SVG path definitions.


20-37: Well-structured new RunsIconSmall component.

The addition of RunsIconSmall with a 20x20 viewBox provides a useful size variation and maintains a consistent API with the main RunsIcon component. This enhancement supports better responsive design across different UI contexts.


39-56: Well-structured new RunsIconExtraSmall component.

The addition of RunsIconExtraSmall with an 18x18 viewBox completes the size spectrum for the Runs icons. This component follows the same pattern as the other icon components, providing a consistent interface while allowing for more granular size control in the UI.

apps/webapp/app/assets/icons/TaskIcon.tsx (2)

3-12: Improved TaskIcon with larger dimensions and simplified structure.

The TaskIcon has been improved with:

  • Increased dimensions from 16x16 to 24x24
  • Simplified SVG structure with cleaner path definitions
  • Added fillRule and clipRule for better rendering

These changes align with modern SVG best practices and improve visual clarity.


14-25: Great addition of TaskIconSmall component.

The new TaskIconSmall component provides a smaller 20x20 variant that maintains visual consistency with the main TaskIcon. This provides developers with more flexibility when implementing the UI in different contexts and screen sizes.

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam._index/route.tsx (1)

662-662: Appropriate size adjustment for TaskIcon.

The size class has been updated from "size-4" to "size-5" to accommodate the TaskIcon's larger dimensions (24x24), ensuring proper display proportions in the UI.

apps/webapp/app/components/environments/RegenerateApiKeyModal.tsx (1)

42-42: Improved title casing in dialog header.

Removing the .toUpperCase() transformation results in a more natural reading experience and better aligns with the application's typography standards. This creates a more consistent UI with other dialog headers in the application.

apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam.spans.$spanParam/route.tsx (2)

203-203: Improved icon sizing for better visual hierarchy

The change from individual sizing utilities to the more concise size-5 class improves readability while ensuring consistent sizing.


337-337: Consistent icon sizing across components

This change matches the sizing pattern used on line 203, ensuring visual consistency throughout the run details UI.

apps/webapp/app/components/navigation/SideMenuSection.tsx (1)

32-32: Fine-tuned left padding for better spacing

The subtle increase in left padding (from pl-1 to pl-1.5) improves the visual spacing in the side menu section header, creating better alignment with the content below.

apps/webapp/app/components/navigation/EnvironmentSelector.tsx (1)

46-46: Adjusted left padding for consistent alignment

The change from pl-2 to pl-1.5 creates better horizontal alignment with other navigation components, particularly with the updated side menu section padding.

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.runs.$runParam/route.tsx (2)

634-634: Layout adjustment for better spacing

The gap between items in the flex container has been reduced from gap-2 to gap-1.5 for a more compact visual presentation.


638-638: Icon size standardization

The RunIcon size has been increased from 4 units (16px) to 5 units (20px) using the modern Tailwind size-5 shorthand property that sets both height and width simultaneously, which is consistent with the icon standardization efforts in this PR.

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.apikeys/route.tsx (2)

6-6: Updated environment title function import

Changed import to use environmentFullTitle instead of environmentTitle, which is part of the PR's effort to standardize and improve environment labeling.


127-127: Using full environment title for better context

Updated to use environmentFullTitle(environment) for the regeneration modal title, providing more complete environment information in the UI.

apps/webapp/app/routes/resources.environments.$environmentId.regenerate-api-key.tsx (2)

3-3: Updated environment title function import

Changed import to use environmentFullTitle for more comprehensive environment labeling.


28-28: Enhanced success message with full environment title

Updated success message to use environmentFullTitle(updatedEnvironment) for more detailed environment information, ensuring consistency with other changes in the PR.

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.queues/route.tsx (4)

16-16: Switched to small task icon variant

Imported TaskIconSmall instead of TaskIcon to use the new small variant icon created for this PR.


19-19: Added blank state component import

Added or moved import for QueuesHasNoTasks from BlankStatePanels to properly handle the empty state UI.


339-344: Updated to small task icon with precise sizing

Replaced TaskIcon with TaskIconSmall and adjusted the size from the standard 4 units (16px) to a more precise 1.125rem (18px) to match the new icon system introduced in this PR.


353-353: Standardized icon sizing

Updated the RectangleStackIcon size to match the same 1.125rem (18px) dimensions as other small icons in the UI, maintaining visual consistency.

apps/webapp/app/components/navigation/OrganizationSettingsSideMenu.tsx (2)

53-56: UI structure improvement applied.

The addition of nested divs improves the layout structure by adding proper margin spacing between the header and menu items.


88-88: Color scheme update for consistency.

The change from "text-blue-500" to "text-orgSettings" aligns with design system improvements, using semantic color naming instead of direct color references.

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.environment-variables.new/route.tsx (2)

13-13: Great enhancement for environment variable parsing.

The addition of the dotenv import enables parsing of pasted .env file content, which is used in the handlePaste function (lines 366-367).


17-17: Import updates to support enhanced UI components.

The updated imports provide necessary components for improved UI functionality, including tooltips and environment-related components.

Also applies to: 28-36, 38-38

apps/webapp/app/components/runs/v3/RunIcon.tsx (3)

16-18: New icon imports enhance UI specificity.

These additional icons will provide more context-specific visualizations for different run types.


82-84: Improved error state representation.

Using the semantic color class "text-error" instead of specific color codes improves maintainability and ensures consistency with the design system.


86-99: Enhanced visual differentiation for task types.

Replacing generic icons with specialized ones (MiddlewareIcon, RunFunctionIcon, WebhookTaskIcon) improves the UI by providing clearer visual cues for different task types. The error states are now consistently styled with the "text-error" class.

apps/webapp/app/components/runs/v3/TaskTriggerSource.tsx (2)

2-3: Updated import statements improve type safety and component usage.

Adding the type keyword to the TaskTriggerSource import ensures it's used for type checking only. Switching to TaskIconSmall maintains consistency with the icon system updates.


15-15: Consistent sizing and styling for trigger source icons.

The change to using fixed-size icons (size-[1.125rem]) and semantic color classes (text-tasks, text-schedules) ensures visual consistency across the application.

Also applies to: 18-18

apps/webapp/app/components/BlankStatePanels.tsx (10)

84-84: Updated icon color class for improved consistency

The change from a specific color class to a semantic class name text-tasks improves the theming system by using a more descriptive and maintainable approach.


109-109: Standardized icon color naming convention

Using the semantic class text-schedules instead of a direct color reference improves consistency and makes future theme changes easier.


139-139: Consistent semantic color class for schedules

Same pattern applied here - using text-schedules ensures consistent styling for all schedule-related components.


174-174: Updated icon color class for batches

Changed to use the semantic class text-batches for better maintainability.


198-198: Consistent semantic class for tests

Using text-tests aligns with the pattern of using semantic color classes throughout the application.


227-227: Updated color class for deployments

Changed to the semantic class text-deployments for consistency with other components.


271-271: Consistent color class for deployment icons

Using the same text-deployments class ensures visual consistency between different deployment-related components.


317-317: Updated alerts icon coloring

Changed to use the semantic class text-alerts for better maintainability and consistency.


353-353: Consistent color class for alert icons

The same pattern applied here with text-alerts maintains visual consistency across alert components.


394-394: Updated queue icon coloring

Changed to use the semantic class text-queues consistent with the application's theming approach.

packages/core/src/v3/workers/taskExecutor.ts (11)

12-18: Improved import organization

The imports have been restructured for better clarity, with the addition of accessoryAttributes which will be used for the new functionality.


323-323: Standardized span naming for middleware

The span name has been simplified to a generic middleware() format instead of including specific hook names, making trace output more consistent. The implementation now uses the new lifecycleHookAccessoryAttributes helper to add hook-specific information in a standardized way.

Also applies to: 330-330


424-424: Standardized span naming for onWait hooks

The span names for onWait hooks have been standardized to use a consistent format. The specific hook names are now added through the accessory attributes, which provides more structured information for tracing.

Also applies to: 431-431, 445-445, 460-460


496-496: Standardized span naming for onResume hooks

Similar to other hooks, the span names for onResume hooks have been standardized for consistency, with hook-specific information moved to the accessory attributes.

Also applies to: 503-503, 517-517, 532-532


563-563: Standardized span naming for init hooks

The span names for initialization hooks now follow the same pattern, providing a more consistent tracing experience while preserving hook-specific details through accessory attributes.

Also applies to: 578-578, 599-599, 614-614


662-662: Standardized span naming for onSuccess hooks

The span names for success hooks have been updated to the standardized format, maintaining consistency with other lifecycle hooks.

Also applies to: 677-677, 691-691, 706-706


737-737: Standardized span naming for onFailure hooks

Failure hooks now use consistent span naming, with additional context provided through accessory attributes rather than in the span name itself.

Also applies to: 752-752, 767-767, 781-781


824-824: Standardized span naming for onStart hooks

Start hooks follow the same standardized naming pattern, improving tracing consistency.

Also applies to: 831-831, 845-845, 859-859


899-899: Standardized span naming for cleanup hooks

Cleanup hooks now use the consistent naming pattern, aligning with the standardization across all lifecycle hooks.

Also applies to: 913-913, 927-927, 941-941


1158-1158: Standardized span naming for onComplete hooks

Complete hooks now follow the same standardized naming conventions as the other lifecycle hooks.

Also applies to: 1173-1173, 1187-1187, 1202-1202


1233-1243: Added helper method for generating accessory attributes

This new private method centralizes the creation of accessory attributes for lifecycle hooks, which improves code maintainability and ensures consistent attribute formatting across all hook spans.

apps/webapp/app/components/navigation/SideMenu.tsx (14)

24-25: Updated icon imports

Switched to more appropriately sized icon components with the new TaskIconSmall and RunsIconExtraSmall variants.


155-156: Simplified layout structure

Removed the gap-1 class, which could affect spacing between items. Make sure this change was intentional and doesn't cause visual alignment issues.

Please verify that removing the gap between environment selector and connection status doesn't cause visual alignment issues in the UI.


168-170: Updated to smaller task icon and semantic colors

Changed from the standard TaskIcon to the more appropriately sized TaskIconSmall and updated to semantic color class text-tasks for better maintainability.


175-177: Switched to extra small runs icon and updated colors

Using the RunsIconExtraSmall component provides better size control for the side menu, and the text-runs semantic class improves theming consistency.


182-183: Updated to semantic color for batches

Changed to text-batches for consistent color theming across the application.


189-190: Updated to semantic color for schedules

Changed to text-schedules for consistent color theming across the application.


196-197: Updated to semantic color for queues

Changed to text-queues for consistent color theming across the application.


203-204: Updated to semantic color for deployments

Changed to text-deployments for consistent color theming across the application.


210-211: Updated to semantic color for tests

Changed to text-tests for consistent color theming across the application.


229-230: Updated to semantic color for API keys

Changed to text-apiKeys for consistent color theming across the application.


236-237: Updated to semantic color for environment variables

Changed to text-environmentVariables for consistent color theming across the application.


243-244: Updated to semantic color for alerts

Changed to text-alerts for consistent color theming across the application.


250-251: Updated to semantic color for project settings

Changed to text-projectSettings for consistent color theming across the application.


526-549: Simplified DevConnection component structure

The component structure has been streamlined by removing unnecessary div nesting. The button styling has been updated from px-1 to aspect-square h-7 p-1, which creates a perfect square button with consistent padding on all sides.

apps/webapp/app/components/environments/EnvironmentLabel.tsx (7)

2-5: Updated to use small environment icon variants

Changed imports to use the smaller variant icons, which is consistent with the icon resizing pattern seen in other components.


6-7: Added explicit imports for RuntimeEnvironment and class name utility

These imports provide better type safety for the RuntimeEnvironment and access to the class name utility function.


21-22: Updated to use small environment icon variant

Changed from the standard icon to DevEnvironmentIconSmall for better size consistency with other icons.


25-28: Updated to use small production environment icon variant

Changed from the standard icon to ProdEnvironmentIconSmall for better size consistency with other icons.


32-35: Updated to use small deployed environment icon variant

Changed from the standard icon to DeployedEnvironmentIconSmall for better size consistency with other icons.


48-49: Refined icon sizing for better precision

Changed from size-4 (1rem) to size-[1.125rem] for more precise control over the icon size.


94-104: Updated to semantic color classes for environments

Changed environment text colors from specific color classes to semantic classes (text-prod, text-staging, text-dev, text-preview), which is consistent with the theming approach used throughout the application.

apps/webapp/app/assets/icons/EnvironmentIcons.tsx (5)

3-33: Good refactoring of DevEnvironmentIcon with improved dimensions

The updates to the DevEnvironmentIcon with a larger viewBox (24x24) and more detailed path structure provide better scaling and visual clarity. The segmented corners with rounded caps create a more polished appearance.


37-71: Well-implemented small variant of DevEnvironmentIcon

The new DevEnvironmentIconSmall component provides a properly scaled-down version with appropriate adjustments to dimensions and element sizes, maintaining visual consistency with its larger counterpart.


95-113: Good implementation of ProdEnvironmentIconSmall

The small variant of the production environment icon is well-implemented with proper scaling and dimensions. The use of currentColor for the star path is correct (though inconsistent with the larger variant as noted in a previous comment).


117-134: Nicely updated DeployedEnvironmentIcon with improved dimensions

The DeployedEnvironmentIcon has been effectively updated with better proportions and a cleaner layout. The combination of the circle and rectangle creates a clear visual identity.


136-153: Well-implemented DeployedEnvironmentIconSmall

The small variant of the deployed environment icon maintains visual consistency with its larger counterpart while properly scaling down the dimensions.

Comment on lines +75 to +79
<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12.5037 7.33603C12.3174 6.88799 11.6827 6.88799 11.4963 7.33603L10.4338 9.89064L7.6759 10.1117C7.1922 10.1505 6.99606 10.7542 7.36459 11.0698L9.46583 12.8698L8.82387 15.561C8.71128 16.033 9.22477 16.4061 9.63888 16.1532L12 14.711L14.3612 16.1532C14.7753 16.4061 15.2888 16.0331 15.1762 15.561L14.5343 12.8698L16.6355 11.0698C17.004 10.7542 16.8079 10.1505 16.3242 10.1117L13.5663 9.89064L12.5037 7.33603Z"
fill="white"
/>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix inconsistent fill color in ProdEnvironmentIcon

The star path in ProdEnvironmentIcon uses a hardcoded white fill, while the small variant uses currentColor. This inconsistency could cause issues in dark themes or when custom colors are applied.

- <path
-   d="M12.5037 7.33603C12.3174 6.88799 11.6827 6.88799 11.4963 7.33603L10.4338 9.89064L7.6759 10.1117C7.1922 10.1505 6.99606 10.7542 7.36459 11.0698L9.46583 12.8698L8.82387 15.561C8.71128 16.033 9.22477 16.4061 9.63888 16.1532L12 14.711L14.3612 16.1532C14.7753 16.4061 15.2888 16.0331 15.1762 15.561L14.5343 12.8698L16.6355 11.0698C17.004 10.7542 16.8079 10.1505 16.3242 10.1117L13.5663 9.89064L12.5037 7.33603Z"
-   fill="white"
+ <path
+   d="M12.5037 7.33603C12.3174 6.88799 11.6827 6.88799 11.4963 7.33603L10.4338 9.89064L7.6759 10.1117C7.1922 10.1505 6.99606 10.7542 7.36459 11.0698L9.46583 12.8698L8.82387 15.561C8.71128 16.033 9.22477 16.4061 9.63888 16.1532L12 14.711L14.3612 16.1532C14.7753 16.4061 15.2888 16.0331 15.1762 15.561L14.5343 12.8698L16.6355 11.0698C17.004 10.7542 16.8079 10.1505 16.3242 10.1117L13.5663 9.89064L12.5037 7.33603Z"
+   fill="currentColor"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12.5037 7.33603C12.3174 6.88799 11.6827 6.88799 11.4963 7.33603L10.4338 9.89064L7.6759 10.1117C7.1922 10.1505 6.99606 10.7542 7.36459 11.0698L9.46583 12.8698L8.82387 15.561C8.71128 16.033 9.22477 16.4061 9.63888 16.1532L12 14.711L14.3612 16.1532C14.7753 16.4061 15.2888 16.0331 15.1762 15.561L14.5343 12.8698L16.6355 11.0698C17.004 10.7542 16.8079 10.1505 16.3242 10.1117L13.5663 9.89064L12.5037 7.33603Z"
fill="white"
/>
<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12.5037 7.33603C12.3174 6.88799 11.6827 6.88799 11.4963 7.33603L10.4338 9.89064L7.6759 10.1117C7.1922 10.1505 6.99606 10.7542 7.36459 11.0698L9.46583 12.8698L8.82387 15.561C8.71128 16.033 9.22477 16.4061 9.63888 16.1532L12 14.711L14.3612 16.1532C14.7753 16.4061 15.2888 16.0331 15.1762 15.561L14.5343 12.8698L16.6355 11.0698C17.004 10.7542 16.8079 10.1505 16.3242 10.1117L13.5663 9.89064L12.5037 7.33603Z"
fill="currentColor"
/>

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1)

3-20: Add accessibility attributes to the SVG icon

The SVG lacks important accessibility attributes like aria-hidden (if purely decorative) or a proper title and description (if meaningful).

Add appropriate accessibility attributes:

-<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<svg 
+  className={className} 
+  viewBox="0 0 24 24" 
+  fill="none" 
+  xmlns="http://www.w3.org/2000/svg"
+  aria-hidden="true"
+>

Or if the icon is meant to convey meaning:

-<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<svg 
+  className={className} 
+  viewBox="0 0 24 24" 
+  fill="none" 
+  xmlns="http://www.w3.org/2000/svg"
+  role="img"
+  aria-labelledby="functionIconTitle"
+>
+  <title id="functionIconTitle">Function</title>
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d4a8e6d and b1acd1a.

📒 Files selected for processing (2)
  • apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1 hunks)
  • apps/webapp/app/components/runs/v3/RunIcon.tsx (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/webapp/app/components/runs/v3/RunIcon.tsx
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
  • GitHub Check: units / 🧪 Unit Tests
  • GitHub Check: typecheck / typecheck
🔇 Additional comments (1)
apps/webapp/app/assets/icons/WebhookTaskIcon.tsx (1)

1-21: Implementation follows best practices for React SVG icons

The overall implementation of the component is clean and follows best practices:

  • Properly typed props with optional className
  • Use of currentColor for fill/stroke to inherit color from parent
  • Appropriate viewBox dimensions
  • Clean SVG structure with separated rectangle and path elements

@matt-aitken matt-aitken merged commit be02439 into main Mar 26, 2025
11 of 12 checks passed
@matt-aitken matt-aitken deleted the icon-update branch March 26, 2025 19:12
@coderabbitai coderabbitai bot mentioned this pull request Apr 4, 2025
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.

2 participants