saleor-dashboard/src/translations/views/EntityLists/TranslationsCollectionList.tsx
Jonatan Witoszek 1a19289e43
Enhancements to pagination navigation (#2063)
* Update macaw to include Paginator changes

* Add link support to TablePagination component

* Rewrite usePaginator to use context and links instead of onClick

* Refactor ProductList to use new usePaginator hook

* Add decorator for PaginatorContext in ProductList stories

* Refactor AppList to use new usePaginator hook

* Refactor AttributeList to use new usePaginator hook

* Add missing pagination props for local pagination to AttributeValues

* Refactor CategoryList to use new usePaginator hook

* Refactor CategoryDetails to use useLocalPaginator and context

* Refactor CollectionList to use new usePaginator hook

* Refactor CollectionProducts to use new usePaginator hook

* Refactor CustomerList to use new usePaginator hook

* Refactor VoucherDetailsPage to use PaginationContext

* Refactor SaleDetails to use PaginatorContext

* Refactor SaleList to use new usePaginator hook

* Refactor VoucherList to use new usePaginator hook

* Fix type error in paginatorContextValues fixture

* Refactor GitfCardList to use new usePaginator hook

* Remove unused imports

* Refactor MenuList to use new usePaginator hook

* Refactor OrderDraftList to use new usePaginator hook

* Refactor OrderListPage to use new usePaginator hook

* Refactor PageList to use new usePaginator hook

* Refactor PageTypeList to use new usePaginator hook

* Refactor PermissionGroupList to use new usePaginator hook

* Refactor PluginsList to use new usePaginator hook

* Refactor ProductTypeList to use new usePaginator hook

* Refactor ShippingMethodProducts to use PaginationContext

* Refactor ShippingZonesList to use new usePaginator hook

* Refactor StaffList to use new usePaginator hook

* Fix TS errors

* Update TranslationEntities and TranslationFields to use new usePaginator

* Refactor WarehouseList to use new usePaginator hook

* Fix errors in stories that didn't use PaginationContextDecorator

* Mention changes in changelog

* Update to latest macaw version, update snapshots
2022-05-31 14:53:16 +02:00

61 lines
1.8 KiB
TypeScript

import { useCollectionTranslationsQuery } from "@saleor/graphql";
import usePaginator, { PaginatorContext } from "@saleor/hooks/usePaginator";
import TranslationsEntitiesList from "@saleor/translations/components/TranslationsEntitiesList";
import {
languageEntityUrl,
TranslatableEntities
} from "@saleor/translations/urls";
import { mapEdgesToItems } from "@saleor/utils/maps";
import React from "react";
import { TranslationsEntityListProps } from "./types";
import { sumCompleted } from "./utils";
const TranslationsCollectionList: React.FC<TranslationsEntityListProps> = ({
params,
variables
}) => {
const { data, loading } = useCollectionTranslationsQuery({
displayLoader: true,
variables
});
const paginationValues = usePaginator({
pageInfo: data?.translations?.pageInfo,
paginationState: variables,
queryString: params
});
return (
<PaginatorContext.Provider value={paginationValues}>
<TranslationsEntitiesList
disabled={loading}
entities={mapEdgesToItems(data?.translations)?.map(
node =>
node.__typename === "CollectionTranslatableContent" && {
completion: {
current: sumCompleted([
node.translation?.description,
node.translation?.name,
node.translation?.seoDescription,
node.translation?.seoTitle
]),
max: 4
},
id: node.collection.id,
name: node.collection.name
}
)}
getRowHref={id =>
languageEntityUrl(
variables.language,
TranslatableEntities.collections,
id
)
}
/>
</PaginatorContext.Provider>
);
};
export default TranslationsCollectionList;