diff --git a/assets/stylesheets/App.css b/assets/stylesheets/App.css index bf683abc..b21b63fa 100644 --- a/assets/stylesheets/App.css +++ b/assets/stylesheets/App.css @@ -2647,6 +2647,7 @@ span.ant-skeleton-input.ant-skeleton-input-sm.text-skeleton { .segmented-nav-item-icon { padding-inline: 8px; + min-width: 32px; } .segmented-nav-item-icon-contents { @@ -2667,7 +2668,12 @@ span.ant-skeleton-input.ant-skeleton-input-sm.text-skeleton { .segmented-nav-item-selected, .segmented-nav-item:not(.segmented-nav-item-disabled):hover { background: var(--color-button-background); - border: 1px solid var(--color-button-border); + border: 1px solid + color-mix( + in srgb, + var(--color-button-border) 40%, + var(--color-button-background) + ); } .segmented-nav-item-disabled { diff --git a/src/components/Dashboard/common/ListViewEditButtons.jsx b/src/components/Dashboard/common/ListViewEditButtons.jsx index 38a1d4bd..d934b522 100644 --- a/src/components/Dashboard/common/ListViewEditButtons.jsx +++ b/src/components/Dashboard/common/ListViewEditButtons.jsx @@ -4,12 +4,14 @@ import EditButtons from './EditButtons' import { useObjectListView } from '../context/ObjectListViewContext' const ListViewEditButtons = ({ showStartingDivider = false }) => { - const { isEditing, saving, saveEdits, cancelEdits, startEditing } = - useObjectListView() - - if (!isEditing) { - return null - } + const { + isEditing, + initialLoading, + saving, + saveEdits, + cancelEdits, + startEditing + } = useObjectListView() return ( @@ -24,6 +26,7 @@ const ListViewEditButtons = ({ showStartingDivider = false }) => { cancelEditing={cancelEdits} startEditing={startEditing} formValid={true} + disabled={initialLoading} loading={saving} requirePermission={false} /> diff --git a/src/components/Dashboard/common/ListViewTabs.jsx b/src/components/Dashboard/common/ListViewTabs.jsx index 3a054216..25e8952c 100644 --- a/src/components/Dashboard/common/ListViewTabs.jsx +++ b/src/components/Dashboard/common/ListViewTabs.jsx @@ -7,7 +7,6 @@ import { Button, Flex, Typography, - Spin, Divider, theme } from 'antd' @@ -18,7 +17,6 @@ import { getModelByName } from '../../../database/ObjectModels' import { useObjectListView } from '../context/ObjectListViewContext' import classNames from 'classnames' import PlusIcon from '../../Icons/PlusIcon' -import EditIcon from '../../Icons/EditIcon' import BinIcon from '../../Icons/BinIcon' import ScrollBox from './ScrollBox' import ColorSelector from './ColorSelector' @@ -154,14 +152,16 @@ const ViewTabLabel = ({ className='list-view-tabs-label list-view-tabs-label-editing' onFocusCapture={() => onSelect?.()} > - onDraftChange({ color })} - onClick={(event) => event.stopPropagation()} - /> +
+ onDraftChange({ color })} + onClick={(event) => event.stopPropagation()} + /> +
event.stopPropagation()} @@ -196,7 +196,6 @@ const ListViewTabs = () => { activeTabKey, initialLoading, isEditing, - startEditing, selectTab, handleTabEdit, updateDraftView, @@ -207,10 +206,19 @@ const ListViewTabs = () => { const model = getModelByName(objectType) const options = useMemo(() => { - const Icon = model?.icon + const Icon = initialLoading ? LoadingOutlined : model?.icon + const styles = initialLoading + ? { fontSize: 12, color: 'var(--color-button-border)' } + : { fontSize: 14 } const allOption = { value: ALL_TAB_KEY, - icon: Icon ? : null + icon: Icon ? ( + + ) : null } const viewOptions = views.map((view) => ({ @@ -242,6 +250,7 @@ const ListViewTabs = () => { ALL_TAB_KEY, activeTabKey, handleTabEdit, + initialLoading, isEditing, model?.icon, selectTab, @@ -256,51 +265,40 @@ const ListViewTabs = () => { style={{ minHeight: 0, width: '100%', minWidth: 0 }} > - } + + - - - - + + + + {isEditing && (