in website/src/pages/ShowcaseCardPage.tsx [53:116]
state: prepareUserState(),
});
}, [tag, location, history]);
}
function restoreUserState(userState: UserState | null) {
const { scrollTopPosition, focusedElementId } = userState ?? {
scrollTopPosition: 0,
focusedElementId: undefined,
};
// @ts-expect-error: if focusedElementId is undefined it returns null
document.getElementById(focusedElementId)?.focus();
window.scrollTo({ top: scrollTopPosition });
}
const SORT_BY_OPTIONS = [
"New to old",
"Old to new",
"Alphabetical (A - Z)",
"Alphabetical (Z - A)",
];
function readSortChoice(rule: string): User[] {
if (rule == SORT_BY_OPTIONS[0]) {
const copyUnsortedUser = unsortedUsers.slice();
return copyUnsortedUser.reverse();
} else if (rule == SORT_BY_OPTIONS[1]) {
return unsortedUsers;
} else if (rule == SORT_BY_OPTIONS[2]) {
return sortedUsers;
} else if (rule == SORT_BY_OPTIONS[3]) {
const copySortedUser = sortedUsers.slice();
return copySortedUser.reverse();
}
return sortedUsers;
}
const SearchNameQueryKey = "name";
function readSearchName(search: string) {
return new URLSearchParams(search).get(SearchNameQueryKey);
}
function filterUsers(
users: User[],
selectedTags: TagType[],
searchName: string | null
) {
if (searchName) {
// eslint-disable-next-line no-param-reassign
users = users.filter((user) =>
user.title.toLowerCase().includes(searchName.toLowerCase())
);
}
if (!selectedTags || selectedTags.length === 0) {
return users;
}
return users.filter((user) => {
const tags = [
...user.tags,
...(user.languages || []),
...(user.azureServices || []),
];
if (!user && !tags && tags.length === 0) {