Skip to content

fix(platform): UI polish and layout fixes#417

Merged
Israeltheminer merged 3 commits into
mainfrom
fix/ui-polish
Feb 9, 2026
Merged

fix(platform): UI polish and layout fixes#417
Israeltheminer merged 3 commits into
mainfrom
fix/ui-polish

Conversation

@Israeltheminer
Copy link
Copy Markdown
Collaborator

@Israeltheminer Israeltheminer commented Feb 9, 2026

Summary

  • Layout fixes: error display flex stretch, data-table overflow-hidden for rounded borders, org ID truncation with text-nowrap
  • UX improvements: bold entity names in delete confirmation dialogs, active state styling on chat history toggle, date-grouped chat search results, floating close button on chat sidebar, org creation page with header/logo
  • Form fixes: login email .trim() validation, remove unnecessary useEffect for password error clearing, search input size flexibility (remove hardcoded size="sm")
  • Misc: gate Settings menu on organizationId, rename "Manage members" to "Members"

Test plan

  • Verify error display fills available space
  • Verify data-table content doesn't overflow rounded corners
  • Verify delete dialogs show bold entity names
  • Verify chat history toggle shows active state when sidebar is open
  • Verify chat search groups results by date
  • Verify floating close button appears on chat sidebar
  • Verify org creation page shows header with logo
  • Verify login form trims email whitespace
  • Verify Settings menu hidden when no organization loaded

Summary by CodeRabbit

Release Notes

  • New Features

    • Added grouped chat search functionality organized by date
    • Implemented closable chat history panel with dedicated close button
    • Added header section to organization form with logo and user menu
  • Bug Fixes

    • Fixed data table overflow clipping issue
    • Improved layout distribution and spacing
  • UI/UX Improvements

    • Enhanced entity name styling in delete confirmation dialogs
    • Added active state styling to chat history toggle button
    • Improved field label and value layout with better text handling
    • Added informational tooltips to copyable fields
  • Updates

    • Settings menu now requires organization context
    • Email input now trims whitespace
    • Updated "Manage members" label to "Members"

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 9, 2026

📝 Walkthrough

Walkthrough

This PR comprises multiple UI refinements and styling adjustments across the platform. Changes include adding flex layout properties to error display, introducing styled entity names in dialogs through split-based rendering, refactoring the chat search dialog from a flat list to a grouped structure by formatted date, restructuring the history panel with a close button, adding a header to the organization form, narrowing Settings menu visibility in the user button, and adjusting styling for input fields, copyable text, and data tables. The login route adds email trimming and removes automatic password error clearing on input changes. A translation key label is updated from "Manage members" to "Members".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 18.18% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(platform): UI polish and layout fixes' is directly related to the changeset, which contains multiple UI and layout improvements across various components.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/ui-polish

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@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: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
services/platform/app/routes/_auth/log-in.tsx (1)

145-167: ⚠️ Potential issue | 🟠 Major

Login can get stuck after wrong credentials.
errors.password disables the submit button (Line 162–167), but the error is only cleared in handleSubmit. After a wrong password, the user can’t resubmit because the button stays disabled. Clear the password error on input change (or remove it from the disabled condition).

🔧 Proposed fix (clear password error on input change)
             <Input
               id="password"
               type="password"
               size="lg"
               label={t('password')}
               placeholder={t('passwordPlaceholder')}
               disabled={isSubmitting}
               autoComplete="current-password"
               errorMessage={errors.password?.message}
               className="shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)]"
-              {...form.register('password')}
+              {...form.register('password', {
+                onChange: () => form.clearErrors('password'),
+              })}
             />
🤖 Fix all issues with AI agents
In `@services/platform/app/components/ui/entity/entity-delete-dialog.tsx`:
- Around line 99-109: The current rendering logic for styledDescription uses
translations.description.split('{name}') and only inserts entityName between
parts[0] and parts[1], losing additional {name} occurrences; update the
styledDescription construction (the parts variable and JSX that builds
styledDescription) to iterate over all parts and interleave a span with
entityName (className="text-foreground font-semibold") between each part so
every {name} placeholder is replaced, e.g., map over parts and return [part,
<span key=...>{entityName}</span>] for all but the last part, ensuring multiple
occurrences are preserved.

In `@services/platform/app/features/chat/components/chat-actions.tsx`:
- Around line 119-132: The delete confirmation currently splits
tChat('deleteConfirmation', { title: '\x00' }) and assumes parts[1] exists; add
a defensive check so missing placeholder doesn't break rendering: after
computing parts, if parts.length < 2 fall back to using the translated string
with the real title (e.g. call tChat('deleteConfirmation', { title: chat.title
})) or at minimum set post = parts[1] ?? '' and render pre, title, post; update
the inline IIFE around tChat/deleteConfirmation/parts to use this fallback.

In `@services/platform/app/routes/dashboard/`$id/chat.tsx:
- Around line 39-45: The close control button currently has no explicit type
(defaulting to "submit") which can accidentally submit a surrounding form;
update the button element that calls setIsHistoryOpen(false) and renders
<PanelLeftClose /> to include type="button" so it will act as a non-submitting
control, ensuring the onClick handler only toggles history visibility.

Comment thread services/platform/app/components/ui/entity/entity-delete-dialog.tsx
Comment thread services/platform/app/features/chat/components/chat-actions.tsx
Comment thread services/platform/app/routes/dashboard/$id/chat.tsx
Layout fixes: error display flex, data-table overflow, org ID truncation.
UX improvements: bold entity names in delete dialogs, active state on
history toggle, date-grouped chat search, floating sidebar close button,
org creation page layout with header. Login form email trim and remove
unnecessary useEffect. Search input size flexibility.
Replace all {name} placeholders in entity delete dialog by iterating
over split parts instead of only inserting between first two. Add
defensive fallback in chat delete confirmation when {title} placeholder
is missing.
Add missing exports for unused declarations across 17 files. Fix
postMessage targetOrigin in service worker. Prefix unused destructured
variable with underscore.
@Israeltheminer Israeltheminer merged commit d15bac9 into main Feb 9, 2026
5 of 8 checks passed
@Israeltheminer Israeltheminer deleted the fix/ui-polish branch February 9, 2026 20:54
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