iachat/app/javascript/dashboard
Gabriel Jablonski d2e6d6aee3
fix: Improve handling of empty custom attributes list in settings (#13127)
## Description

This PR fixes a UX bug in the Custom Attributes settings page where
switching tabs becomes impossible when the currently selected tab has no
attributes.

Closes #13120

### The Problem
When viewing the Custom Attributes settings page, if one tab (e.g.,
Conversation) has no attributes, users could not switch to the other tab
(e.g., Contact) which might have attributes.

### Root Cause
The `SettingsLayout` component receives `no-records-found` prop which,
when true, hides the entire body content including the TabBar. Since the
TabBar was inside the body slot, it would be hidden whenever the current
tab had no attributes, preventing users from switching tabs.

### The Fix
- Removed the `no-records-found` and `no-records-message` props from
`SettingsLayout`
- Moved the empty state message inline within the body, displayed below
the TabBar
- The TabBar is now always visible regardless of whether there are
attributes in the selected tab

### Key Changes
- Modified `Index.vue` to handle empty state inline while keeping TabBar
accessible

## Type of change

- [X] Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

1. Navigate to Settings > Custom Attributes
2. Ensure only one tab (e.g., Contact) has custom attributes
3. Switch to the empty tab (e.g., Conversation)
4. Verify the TabBar remains visible and the empty state message is
shown
5. Switch back to the tab with attributes
6. Verify attributes are displayed correctly
7. Repeat with both tabs empty and both tabs with attributes
2025-12-22 15:10:45 -08:00
..
api feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
assets chore: Improve layout styles (#12025) 2025-07-30 13:49:27 -07:00
components fix: Prevent invalid attachments from blocking text paste (#13135) 2025-12-22 21:17:35 +05:30
components-next fix: Prevent invalid attachments from blocking text paste (#13135) 2025-12-22 21:17:35 +05:30
composables feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
constants feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
helper feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
i18n feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
mixins feat: allow configuring attachment upload limit (#12835) 2025-11-17 14:03:08 -08:00
modules chore: Adds URL-based search and tab selection (#12663) 2025-10-27 11:17:04 +05:30
routes fix: Improve handling of empty custom attributes list in settings (#13127) 2025-12-22 15:10:45 -08:00
store feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
stores feat: Voice Channel (#11602) 2025-12-19 12:41:33 -08:00
App.vue fix: Handle login when there are no accounts (#12816) 2025-11-07 10:14:59 +05:30
featureFlags.js feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00