2021-06-21 14:48:08 -07:00
|
|
|
import React from "react";
|
|
|
|
|
import * as Sentry from "@sentry/react";
|
|
|
|
|
import { Box, Flex } from "@chakra-ui/react";
|
2022-10-14 20:29:57 -07:00
|
|
|
import SearchToolbar from "./SearchToolbar";
|
2021-06-21 14:48:08 -07:00
|
|
|
import { MajorErrorMessage, TestErrorSender, useLocalStorage } from "../util";
|
2022-10-14 20:16:06 -07:00
|
|
|
import PaginationToolbar from "../components/PaginationToolbar";
|
2021-06-21 14:48:08 -07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* SearchFooter appears on large screens only, to let you search for new items
|
|
|
|
|
* while still keeping the rest of the item screen open!
|
|
|
|
|
*/
|
2022-10-14 20:29:57 -07:00
|
|
|
function SearchFooter({ searchQuery, onChangeSearchQuery }) {
|
2021-06-21 14:48:08 -07:00
|
|
|
const [canUseSearchFooter, setCanUseSearchFooter] = useLocalStorage(
|
|
|
|
|
"DTIFeatureFlagCanUseSearchFooter",
|
|
|
|
|
false
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
React.useEffect(() => {
|
|
|
|
|
if (window.location.search.includes("feature-flag-can-use-search-footer")) {
|
|
|
|
|
setCanUseSearchFooter(true);
|
|
|
|
|
}
|
|
|
|
|
}, [setCanUseSearchFooter]);
|
|
|
|
|
|
|
|
|
|
// TODO: Show the new footer to other users, too!
|
|
|
|
|
if (!canUseSearchFooter) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<Box paddingX="4" paddingY="4">
|
|
|
|
|
<Sentry.ErrorBoundary fallback={MajorErrorMessage}>
|
|
|
|
|
<TestErrorSender />
|
|
|
|
|
<Flex as="label" align="center">
|
|
|
|
|
<Box fontWeight="600" flex="0 0 auto">
|
|
|
|
|
Add new items:
|
|
|
|
|
</Box>
|
2022-10-14 20:16:06 -07:00
|
|
|
<Box width="8" />
|
|
|
|
|
<SearchToolbar
|
2022-10-14 20:29:57 -07:00
|
|
|
query={searchQuery}
|
|
|
|
|
onChange={onChangeSearchQuery}
|
2022-10-14 20:16:06 -07:00
|
|
|
flex="0 1 100%"
|
|
|
|
|
suggestionsPlacement="top"
|
|
|
|
|
/>
|
|
|
|
|
<Box width="8" />
|
|
|
|
|
<Box flex="0 0 auto">
|
|
|
|
|
<PaginationToolbar
|
|
|
|
|
numTotalPages={1}
|
|
|
|
|
currentPageNumber={1}
|
|
|
|
|
goToPageNumber={() => alert("TODO")}
|
|
|
|
|
buildPageUrl={() => null}
|
|
|
|
|
size="sm"
|
|
|
|
|
/>
|
|
|
|
|
</Box>
|
2021-06-21 14:48:08 -07:00
|
|
|
</Flex>
|
|
|
|
|
</Sentry.ErrorBoundary>
|
|
|
|
|
</Box>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default SearchFooter;
|