import { observer } from "mobx-react";
import { DraftsIcon } from "outline-icons";
import queryString from "query-string";
import * as React from "react";
import { useTranslation } from "react-i18next";
import { useHistory, useLocation } from "react-router-dom";
import styled from "styled-components";
import { DateFilter as TDateFilter } from "@shared/types";
import CollectionFilter from "~/scenes/Search/components/CollectionFilter";
import { Action } from "~/components/Actions";
import Empty from "~/components/Empty";
import Flex from "~/components/Flex";
import Heading from "~/components/Heading";
import InputSearchPage from "~/components/InputSearchPage";
import PaginatedDocumentList from "~/components/PaginatedDocumentList";
import Scene from "~/components/Scene";
import Subheading from "~/components/Subheading";
import useStores from "~/hooks/useStores";
import NewDocumentMenu from "~/menus/NewDocumentMenu";
import DateFilter from "./Search/components/DateFilter";
function Drafts() {
const { t } = useTranslation();
const { documents } = useStores();
const history = useHistory();
const location = useLocation();
const params = new URLSearchParams(location.search);
const collectionId = params.get("collectionId") || undefined;
const dateFilter = (params.get("dateFilter") || undefined) as TDateFilter;
const handleFilterChange = (search: {
dateFilter?: string | null | undefined;
collectionId?: string | null | undefined;
}) => {
history.replace({
pathname: location.pathname,
search: queryString.stringify(
{ ...queryString.parse(location.search), ...search },
{
skipEmptyString: true,
}
),
});
};
const isFiltered = collectionId || dateFilter;
const options = {
dateFilter,
collectionId,
};
return (
}
title={t("Drafts")}
left={}
actions={
}
>
{t("Drafts")}
{t("Documents")}
handleFilterChange({
collectionId,
})
}
/>
handleFilterChange({
dateFilter,
})
}
/>
{isFiltered
? t("No documents found for your filters.")
: t("You’ve not got any drafts at the moment.")}
}
fetch={documents.fetchDrafts}
documents={documents.drafts(options)}
options={options}
showParentDocuments
showCollection
/>
);
}
const Filters = styled(Flex)`
opacity: 0.85;
transition: opacity 100ms ease-in-out;
position: absolute;
right: -8px;
bottom: 0;
padding: 0 0 6px;
&:hover {
opacity: 1;
}
`;
export default observer(Drafts);