Apply a few frontend fixes on dropdown (#169)

This commit is contained in:
Charles Bochet
2023-06-01 00:56:32 +02:00
committed by GitHub
parent 0881c098f0
commit 902aa28150
4 changed files with 40 additions and 27 deletions

View File

@ -58,8 +58,6 @@ const StyledDropdown = styled.ul`
min-width: 160px; min-width: 160px;
${modalBackground} ${modalBackground}
li { li {
border-radius: 2px;
&:first-of-type { &:first-of-type {
border-top-left-radius: var(--outer-border-radius); border-top-left-radius: var(--outer-border-radius);
border-top-right-radius: var(--outer-border-radius); border-top-right-radius: var(--outer-border-radius);
@ -74,18 +72,26 @@ const StyledDropdown = styled.ul`
const StyledDropdownItem = styled.li` const StyledDropdownItem = styled.li`
display: flex; display: flex;
align-items: center; align-items: center;
width: 160px;
padding: ${(props) => props.theme.spacing(2)} padding: ${(props) => props.theme.spacing(2)}
calc(${(props) => props.theme.spacing(2)} - 2px); calc(${(props) => props.theme.spacing(2)} - 2px);
margin: 2px; margin: 2px;
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
color: ${(props) => props.theme.text60}; color: ${(props) => props.theme.text60};
border-radius: 2px;
&:hover { &:hover {
background: rgba(0, 0, 0, 0.04); background: rgba(0, 0, 0, 0.04);
} }
`; `;
const StyledDropdownItemClipped = styled.span`
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
`;
const StyledDropdownTopOption = styled.li` const StyledDropdownTopOption = styled.li`
display: flex; display: flex;
align-items: center; align-items: center;
@ -94,13 +100,12 @@ const StyledDropdownTopOption = styled.li`
calc(${(props) => props.theme.spacing(2)}); calc(${(props) => props.theme.spacing(2)});
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
color: ${(props) => props.theme.text60}; color: ${(props) => props.theme.text80};
font-weight: ${(props) => props.theme.fontWeightBold}; font-weight: ${(props) => props.theme.fontWeightBold};
&:hover { &:hover {
background: rgba(0, 0, 0, 0.04); background: rgba(0, 0, 0, 0.04);
} }
border-radius: 0%;
border-bottom: 1px solid ${(props) => props.theme.primaryBorder}; border-bottom: 1px solid ${(props) => props.theme.primaryBorder};
`; `;
@ -121,20 +126,24 @@ const StyledSearchField = styled.li`
color: ${(props) => props.theme.text60}; color: ${(props) => props.theme.text60};
font-weight: ${(props) => props.theme.fontWeightBold}; font-weight: ${(props) => props.theme.fontWeightBold};
border-radius: 0%; overflow: hidden;
border-bottom: 1px solid ${(props) => props.theme.primaryBorder};
input { input {
height: 36px; height: 36px;
width: 100%; width: 100%;
border: none; border: none;
padding: 8px; padding: 8px;
box-sizing: border-box; box-sizing: border-box;
&:hover { font-family: ${(props) => props.theme.fontFamily};
background: rgba(0, 0, 0, 0.04); border-radius: 8px;
&:focus {
outline: 0 none;
} }
} }
input::placeholder { input::placeholder,
color: ${(props) => props.theme.text40}; input::-webkit-input-placeholder {
font-family: ${(props) => props.theme.fontFamily};
color: ${(props) => props.theme.text30};
font-weight: ${(props) => props.theme.fontWeightBold}; font-weight: ${(props) => props.theme.fontWeightBold};
} }
`; `;
@ -188,6 +197,7 @@ function DropdownTopOptionAngleDown() {
); );
} }
DropdownButton.StyledDropdownItem = StyledDropdownItem; DropdownButton.StyledDropdownItem = StyledDropdownItem;
DropdownButton.StyledDropdownItemClipped = StyledDropdownItemClipped;
DropdownButton.StyledSearchField = StyledSearchField; DropdownButton.StyledSearchField = StyledSearchField;
DropdownButton.StyledDropdownTopOption = StyledDropdownTopOption; DropdownButton.StyledDropdownTopOption = StyledDropdownTopOption;
DropdownButton.StyledDropdownTopOptionAngleDown = DropdownTopOptionAngleDown; DropdownButton.StyledDropdownTopOptionAngleDown = DropdownTopOptionAngleDown;

View File

@ -108,7 +108,9 @@ export const FilterDropdownButton = <TData extends FilterableFieldsType>({
setSelectedFilter(undefined); setSelectedFilter(undefined);
}} }}
> >
{result.render(result.value)} <DropdownButton.StyledDropdownItemClipped>
{result.render(result.value)}
</DropdownButton.StyledDropdownItemClipped>
</DropdownButton.StyledDropdownItem> </DropdownButton.StyledDropdownItem>
); );
}); });

View File

@ -13,6 +13,7 @@ const commonTheme = {
iconSizeLarge: '1.23rem', iconSizeLarge: '1.23rem',
fontWeightBold: 500, fontWeightBold: 500,
fontFamily: 'Inter, sans-serif',
spacing: (multiplicator: number) => `${multiplicator * 4}px`, spacing: (multiplicator: number) => `${multiplicator * 4}px`,
}; };

View File

@ -73,6 +73,22 @@ export const useCompaniesColumns = () => {
), ),
size: 120, size: 120,
}), }),
columnHelper.accessor('domainName', {
header: () => (
<ColumnHead viewName="URL" viewIcon={<TbLink size={16} />} />
),
cell: (props) => (
<EditableText
content={props.row.original.domainName || ''}
changeHandler={(value) => {
const company = props.row.original;
company.domainName = value;
updateCompany(company);
}}
/>
),
size: 100,
}),
columnHelper.accessor('employees', { columnHelper.accessor('employees', {
header: () => ( header: () => (
<ColumnHead viewName="Employees" viewIcon={<TbSum size={16} />} /> <ColumnHead viewName="Employees" viewIcon={<TbSum size={16} />} />
@ -95,22 +111,6 @@ export const useCompaniesColumns = () => {
), ),
size: 70, size: 70,
}), }),
columnHelper.accessor('domainName', {
header: () => (
<ColumnHead viewName="URL" viewIcon={<TbLink size={16} />} />
),
cell: (props) => (
<EditableText
content={props.row.original.domainName || ''}
changeHandler={(value) => {
const company = props.row.original;
company.domainName = value;
updateCompany(company);
}}
/>
),
size: 100,
}),
columnHelper.accessor('address', { columnHelper.accessor('address', {
header: () => ( header: () => (
<ColumnHead viewName="Address" viewIcon={<TbMapPin size={16} />} /> <ColumnHead viewName="Address" viewIcon={<TbMapPin size={16} />} />