fix: relation widget style fixes (#911)

This commit is contained in:
Daniel Lautzenheiser 2023-10-04 08:43:07 -04:00 committed by GitHub
parent 2d2b048347
commit a0bc731357
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 47 deletions

View File

@ -1,6 +1,10 @@
.CMS_Autocomplete_root { .CMS_Autocomplete_root {
@apply relative @apply relative
w-full; w-full
flex
items-center
gap-2
pr-2;
&.CMS_Autocomplete_disabled { &.CMS_Autocomplete_disabled {
& .CMS_Autocomplete_input { & .CMS_Autocomplete_input {
@ -15,13 +19,19 @@
} }
} }
.CMS_Autocomplete_input-wrapper {
@apply flex-grow
flex
flex-wrap
min-w-0;
}
.CMS_Autocomplete_input { .CMS_Autocomplete_input {
@apply w-full @apply w-full
bg-transparent bg-transparent
border-none border-none
py-2 py-2
pl-3 pl-3
pr-10
text-sm text-sm
leading-5 leading-5
focus:ring-0 focus:ring-0
@ -33,13 +43,10 @@
} }
.CMS_Autocomplete_button-wrapper { .CMS_Autocomplete_button-wrapper {
@apply absolute @apply flex
inset-y-0
right-0
flex
items-center items-center
pr-2 gap-1
gap-1; flex-shrink-0;
} }
.CMS_Autocomplete_button { .CMS_Autocomplete_button {

View File

@ -20,6 +20,7 @@ export const classes = generateClassNames('Autocomplete', [
'root', 'root',
'focused', 'focused',
'disabled', 'disabled',
'input-wrapper',
'input', 'input',
'button-wrapper', 'button-wrapper',
'button', 'button',
@ -55,6 +56,7 @@ export interface AutocompleteProps {
disabled?: boolean; disabled?: boolean;
required?: boolean; required?: boolean;
inputRef?: Ref<HTMLInputElement>; inputRef?: Ref<HTMLInputElement>;
endAdornment?: ReactNode;
displayValue: (item: string | string[] | null) => string; displayValue: (item: string | string[] | null) => string;
onQuery: (query: string) => void; onQuery: (query: string) => void;
onChange: (value: string | string[] | undefined) => void; onChange: (value: string | string[] | undefined) => void;
@ -64,9 +66,10 @@ const Autocomplete = ({
label, label,
value, value,
options, options,
inputRef,
disabled, disabled,
required, required,
inputRef,
endAdornment,
onChange, onChange,
onQuery, onQuery,
}: AutocompleteProps) => { }: AutocompleteProps) => {
@ -187,6 +190,7 @@ const Autocomplete = ({
)} )}
data-testid="autocomplete" data-testid="autocomplete"
> >
<div className={classes['input-wrapper']}>
{label} {label}
<input <input
{...getInputProps()} {...getInputProps()}
@ -194,7 +198,9 @@ const Autocomplete = ({
className={classes.input} className={classes.input}
data-testid="autocomplete-input" data-testid="autocomplete-input"
/> />
</div>
<div className={classes['button-wrapper']}> <div className={classes['button-wrapper']}>
{endAdornment}
<IconButton <IconButton
variant="text" variant="text"
size="small" size="small"

View File

@ -1,6 +1,5 @@
.CMS_CircularProgress_svg { .CMS_CircularProgress_svg {
@apply mr-2 @apply text-gray-200
text-gray-200
animate-spin animate-spin
dark:text-gray-600 dark:text-gray-600
fill-blue-600; fill-blue-600;

View File

@ -427,3 +427,12 @@ table {
height: 24px; height: 24px;
} }
} }
::-moz-focus-inner,
:focus-visible {
@apply outline-none;
}
.MuiPopper-root {
@apply z-[100];
}

View File

@ -7,14 +7,12 @@
gap-2 gap-2
p-2 p-2
pr-0 pr-0
w-relation-widget-label; min-w-0;
} }
.CMS_WidgetRelation_loading { .CMS_WidgetRelation_loading {
@apply absolute @apply flex
inset-y-0
right-4
flex
items-center items-center
pr-2; w-6
h-6;
} }

View File

@ -358,8 +358,7 @@ const RelationControl: FC<WidgetControlProps<string | string[], RelationField>>
> >
<Autocomplete <Autocomplete
label={ label={
<> Array.isArray(selectedValue) && selectedValue.length > 0 ? (
{Array.isArray(selectedValue) && selectedValue.length > 0 ? (
<div className={classes.values}> <div className={classes.values}>
{selectedValue.map(selectValue => { {selectedValue.map(selectValue => {
const option = uniqueOptionsByValue[selectValue]; const option = uniqueOptionsByValue[selectValue];
@ -370,16 +369,7 @@ const RelationControl: FC<WidgetControlProps<string | string[], RelationField>>
); );
})} })}
</div> </div>
) : null} ) : null
{loading ? (
<CircularProgress
key="loading-indicator"
className={classes.loading}
data-testid="relation-loading-indicator"
size="small"
/>
) : null}
</>
} }
inputRef={ref} inputRef={ref}
value={selectedValue} value={selectedValue}
@ -398,6 +388,16 @@ const RelationControl: FC<WidgetControlProps<string | string[], RelationField>>
return option.label; return option.label;
}} }}
endAdornment={
loading ? (
<CircularProgress
key="loading-indicator"
className={classes.loading}
data-testid="relation-loading-indicator"
size="small"
/>
) : null
}
onQuery={filterOptions} onQuery={filterOptions}
onChange={handleChange} onChange={handleChange}
/> />

View File

@ -32,7 +32,6 @@ module.exports = {
"breadcrumb-title": "calc(100vw * .4)", "breadcrumb-title": "calc(100vw * .4)",
"collection-header": "calc(100% - 32px)", "collection-header": "calc(100% - 32px)",
"date-widget": "calc(100% - 58px)", "date-widget": "calc(100% - 58px)",
"relation-widget-label": "calc(100% - 32px)",
"select-widget-label": "calc(100% - 12px)", "select-widget-label": "calc(100% - 12px)",
}, },
maxWidth: { maxWidth: {