Fix empty sort by causing UI crash (#1480)

This commit is contained in:
WithoutPants 2021-06-04 09:49:10 +10:00 committed by GitHub
parent ad0a9d0707
commit 2469012008
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View file

@ -499,7 +499,9 @@ export const ListFilter: React.FC<IListFilterProps> = (
<Dropdown as={ButtonGroup} className="mr-2">
<Dropdown.Toggle split variant="secondary" id="more-menu">
{intl.formatMessage({ id: currentSortBy?.messageID })}
{currentSortBy
? intl.formatMessage({ id: currentSortBy.messageID })
: ""}
</Dropdown.Toggle>
<Dropdown.Menu className="bg-secondary text-white">
{renderSortByOptions()}

View file

@ -450,11 +450,9 @@ const useList = <QueryResult extends IQueryResult, QueryData extends IDataItem>(
const originalPathName = useRef(location.pathname);
const persistanceKey = options.persistanceKey ?? options.filterMode;
const defaultSort = options.defaultSort ?? filterOptions.defaultSortBy;
const [filter, setFilter] = useState<ListFilterModel>(
new ListFilterModel(
queryString.parse(location.search),
options.defaultSort ?? filterOptions.defaultSortBy
)
new ListFilterModel(queryString.parse(location.search), defaultSort)
);
const updateInterfaceConfig = useCallback(
@ -515,7 +513,7 @@ const useList = <QueryResult extends IQueryResult, QueryData extends IDataItem>(
}
: activeFilter;
const newFilter = new ListFilterModel(query);
const newFilter = new ListFilterModel(query, defaultSort);
// Compare constructed filter with current filter.
// If different it's the result of navigation, and we update the filter.
@ -531,6 +529,7 @@ const useList = <QueryResult extends IQueryResult, QueryData extends IDataItem>(
history.replace(newLocation);
}
}, [
defaultSort,
filter,
interfaceState.data,
interfaceState.loading,