diff --git a/src/components/TableHead/TableHead.tsx b/src/components/TableHead/TableHead.tsx index 9305e263f..82a078e83 100644 --- a/src/components/TableHead/TableHead.tsx +++ b/src/components/TableHead/TableHead.tsx @@ -25,7 +25,7 @@ export interface TableHeadProps extends MuiTableHeadProps { dragRows?: boolean; selected: number; items: Node[]; - toolbar: React.ReactNode | React.ReactNodeArray; + toolbar?: React.ReactNode | React.ReactNodeArray; toggleAll: (items: Node[], selected: number) => void; } @@ -138,7 +138,7 @@ const TableHead = withStyles(styles, { )}
-
{toolbar}
+ {toolbar &&
{toolbar}
}
diff --git a/src/config.ts b/src/config.ts index ac5f694cd..7737bfe0d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -21,6 +21,7 @@ export interface AppListViewSettings { [ListViews.NAVIGATION_LIST]: ListSettings; [ListViews.ORDER_LIST]: ListSettings; [ListViews.PAGES_LIST]: ListSettings; + [ListViews.PLUGINS_LIST]: ListSettings; [ListViews.PRODUCT_LIST]: ListSettings; [ListViews.SALES_LIST]: ListSettings; [ListViews.SHIPPING_METHODS_LIST]: ListSettings; @@ -49,6 +50,9 @@ export const defaultListSettings: AppListViewSettings = { [ListViews.PAGES_LIST]: { rowNumber: PAGINATE_BY }, + [ListViews.PLUGINS_LIST]: { + rowNumber: PAGINATE_BY + }, [ListViews.PRODUCT_LIST]: { columns: ["isPublished", "price", "productType"], rowNumber: PAGINATE_BY diff --git a/src/plugins/components/PluginInfo/PluginInfo.tsx b/src/plugins/components/PluginInfo/PluginInfo.tsx index b3b288c2f..1b45455c8 100644 --- a/src/plugins/components/PluginInfo/PluginInfo.tsx +++ b/src/plugins/components/PluginInfo/PluginInfo.tsx @@ -1,12 +1,6 @@ import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import { - createStyles, - Theme, - withStyles, - WithStyles -} from "@material-ui/core/styles"; -import TextField from "@material-ui/core/TextField"; +import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import Typography from "@material-ui/core/Typography"; import React from "react"; @@ -19,36 +13,27 @@ import { FormData } from "../PluginsDetailsPage"; interface PluginInfoProps { data: FormData; - errors: Partial<{ - description: string; - domain: string; - name: string; - }>; - disabled: boolean; onChange: (event: React.ChangeEvent) => void; } -const styles = (theme: Theme) => - createStyles({ - title: { - fontSize: 14, - color: "#616161", - paddingTop: 10 - }, - status: { - fontSize: 16, - color: "#3D3D3D", - paddingTop: 20, - fontWeight: "400" - } - }); +const styles = createStyles({ + status: { + color: "#3D3D3D", + fontSize: 16, + fontWeight: 400, + paddingTop: 20 + }, + title: { + color: "#616161", + fontSize: 14, + paddingTop: 10 + } +}); const PluginInfo = withStyles(styles, { name: "PluginInfo" })( ({ data, - disabled, classes, - errors, onChange }: PluginInfoProps & WithStyles) => { return ( diff --git a/src/plugins/components/PluginSettings/PluginSettings.tsx b/src/plugins/components/PluginSettings/PluginSettings.tsx index 2927f9ed4..468e57221 100644 --- a/src/plugins/components/PluginSettings/PluginSettings.tsx +++ b/src/plugins/components/PluginSettings/PluginSettings.tsx @@ -1,18 +1,10 @@ import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import ControlledSwitch from "@saleor/components/ControlledSwitch"; -import { - createStyles, - Theme, - withStyles, - WithStyles -} from "@material-ui/core/styles"; +import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; -import Typography from "@material-ui/core/Typography"; -import React from "react"; - import CardTitle from "@saleor/components/CardTitle"; -import FormSpacer from "@saleor/components/FormSpacer"; +import ControlledSwitch from "@saleor/components/ControlledSwitch"; +import React from "react"; import i18n from "../../../i18n"; import { FormData } from "../PluginsDetailsPage"; @@ -27,13 +19,12 @@ interface PluginSettingsProps { onChange: (event: React.ChangeEvent) => void; } -const styles = (theme: Theme) => - createStyles({ - item: { - marginBottom: 5, - marginTop: 10 - } - }); +const styles = createStyles({ + item: { + paddingBottom: 5, + paddingTop: 5 + } +}); const PluginSettings = withStyles(styles, { name: "PluginSettings" })( ({ @@ -42,7 +33,8 @@ const PluginSettings = withStyles(styles, { name: "PluginSettings" })( classes, errors, onChange - }: PluginSettingsProps & WithStyles) => ( + }: PluginSettingsProps & WithStyles) => { + return ( {data.configuration.map((configuration, index) => ( -
+
{configuration.type === "STRING" && ( ); + } ); PluginSettings.displayName = "PluginSettings"; export default PluginSettings; diff --git a/src/plugins/components/PluginsDetailsPage/PluginsDetailsPage.tsx b/src/plugins/components/PluginsDetailsPage/PluginsDetailsPage.tsx index f68947787..e1808b310 100644 --- a/src/plugins/components/PluginsDetailsPage/PluginsDetailsPage.tsx +++ b/src/plugins/components/PluginsDetailsPage/PluginsDetailsPage.tsx @@ -1,42 +1,36 @@ -import React from "react"; import Typography from "@material-ui/core/Typography"; import AppHeader from "@saleor/components/AppHeader"; -import CardSpacer from "@saleor/components/CardSpacer"; import { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import Container from "@saleor/components/Container"; import Form from "@saleor/components/Form"; import Grid from "@saleor/components/Grid"; import PageHeader from "@saleor/components/PageHeader"; import SaveButtonBar from "@saleor/components/SaveButtonBar"; -import SeoForm from "@saleor/components/SeoForm"; -import VisibilityCard from "@saleor/components/VisibilityCard"; +import { maybe } from "@saleor/misc"; +import { UserError } from "@saleor/types"; +import React from "react"; + import i18n from "../../../i18n"; -import { maybe } from "../../../misc"; -import { UserError } from "../../../types"; -import { PageDetails_page } from "../../types/PluginDetails"; import PluginInfo from "../PluginInfo"; import PluginSettings from "../PluginSettings"; export interface FormData { - name: string; - description: string; + name?: string; + description?: string; active: boolean; - id: string; - configuration: [ - { - name: string; - value: string; - type: string; - helpText: string; - label: string; - } - ]; + configuration: Array<{ + name: string; + value: string; + type: string; + helpText: string; + label: string; + }>; } export interface PageDetailsPageProps { disabled: boolean; errors: UserError[]; - plugin: PageDetails_page; + plugin: FormData; saveButtonBarState: ConfirmButtonTransitionState; onBack: () => void; onSubmit: (data: FormData) => void; @@ -51,22 +45,14 @@ const PageDetailsPage: React.StatelessComponent = ({ onSubmit }) => { const initialForm: FormData = { - name: maybe(() => plugin.name, ""), - description: maybe(() => plugin.description, ""), active: maybe(() => plugin.active, false), - configuration: maybe(() => plugin.configuration, []) + configuration: maybe(() => plugin.configuration, []), + description: maybe(() => plugin.description, ""), + name: maybe(() => plugin.name, "") }; return (
- {({ - change, - data, - errors: formErrors, - hasChanged, - submit, - set, - triggerChange - }) => { + {({ data, errors, hasChanged, submit, set, triggerChange }) => { const newData = { active: data.active, configuration: data.configuration @@ -104,12 +90,7 @@ const PageDetailsPage: React.StatelessComponent = ({ )}
- + {data.configuration && ( <>
diff --git a/src/plugins/components/PluginsList/PluginsList.tsx b/src/plugins/components/PluginsList/PluginsList.tsx index 0086d3559..d6a575a43 100644 --- a/src/plugins/components/PluginsList/PluginsList.tsx +++ b/src/plugins/components/PluginsList/PluginsList.tsx @@ -20,28 +20,28 @@ import TableHead from "@saleor/components/TableHead"; import TablePagination from "@saleor/components/TablePagination"; import i18n from "@saleor/i18n"; import { maybe, renderCollection } from "@saleor/misc"; -import { ListActions, ListProps } from "@saleor/types"; -import { PageList_pages_edges_node } from "../../types/PageList"; +import { ListActionsWithoutToolbar, ListProps } from "@saleor/types"; +import { PluginConfigurations_pluginConfigurations_edges_node } from "../../types/pluginConfigurations"; -export interface PluginListProps extends ListProps, ListActions { - plugins: PageList_pages_edges_node[]; +export interface PluginListProps extends ListProps, ListActionsWithoutToolbar { + plugins: PluginConfigurations_pluginConfigurations_edges_node[]; } const styles = (theme: Theme) => createStyles({ [theme.breakpoints.up("lg")]: { - colActive: {}, - colName: {}, colAction: { - textAlign: "right", "& svg": { color: theme.palette.primary.main - } - } + }, + textAlign: "right" + }, + colActive: {}, + colName: {} }, - colName: {}, - colActive: {}, colAction: {}, + colActive: {}, + colName: {}, link: { cursor: "pointer" } @@ -63,8 +63,7 @@ const PluginList = withStyles(styles, { name: "PluginList" })( isChecked, selected, toggle, - toggleAll, - toolbar + toggleAll }: PluginListProps & WithStyles) => { return ( @@ -75,7 +74,6 @@ const PluginList = withStyles(styles, { name: "PluginList" })( disabled={disabled} items={plugins} toggleAll={toggleAll} - toolbar={toolbar} > {i18n.t("Name", { context: "table header" })} diff --git a/src/plugins/components/PluginsListPage/PluginsListPage.tsx b/src/plugins/components/PluginsListPage/PluginsListPage.tsx index 5375117ae..81d0553f5 100644 --- a/src/plugins/components/PluginsListPage/PluginsListPage.tsx +++ b/src/plugins/components/PluginsListPage/PluginsListPage.tsx @@ -1,17 +1,17 @@ -import Button from "@material-ui/core/Button"; -import AddIcon from "@material-ui/icons/Add"; import React from "react"; import AppHeader from "@saleor/components/AppHeader"; import Container from "@saleor/components/Container"; import PageHeader from "@saleor/components/PageHeader"; import i18n from "@saleor/i18n"; -import { ListActions, PageListProps } from "@saleor/types"; -import { PageList_pages_edges_node } from "../../types/PageList"; +import { ListActionsWithoutToolbar, PageListProps } from "@saleor/types"; +import { PluginConfigurations_pluginConfigurations_edges_node } from "../../types/PluginConfigurations"; import PluginsList from "../PluginsList/PluginsList"; -export interface PluginsListPageProps extends PageListProps, ListActions { - pages: PageList_pages_edges_node[]; +export interface PluginsListPageProps + extends PageListProps, + ListActionsWithoutToolbar { + plugins: PluginConfigurations_pluginConfigurations_edges_node[]; onBack: () => void; } @@ -28,8 +28,7 @@ const PluginsListPage: React.StatelessComponent = ({ isChecked, selected, toggle, - toggleAll, - toolbar + toggleAll }) => ( {i18n.t("Configuration")} @@ -47,7 +46,6 @@ const PluginsListPage: React.StatelessComponent = ({ selected={selected} toggle={toggle} toggleAll={toggleAll} - toolbar={toolbar} /> ); diff --git a/src/plugins/index.tsx b/src/plugins/index.tsx index 0cd192947..a518872e6 100644 --- a/src/plugins/index.tsx +++ b/src/plugins/index.tsx @@ -5,9 +5,9 @@ import { Route, RouteComponentProps, Switch } from "react-router-dom"; import { WindowTitle } from "../components/WindowTitle"; import i18n from "../i18n"; import { - pluginsPath, pluginsListPath, - PluginsListUrlQueryParams + PluginsListUrlQueryParams, + pluginsPath } from "./urls"; import PluginsDetailsComponent from "./views/PluginsDetails"; import PluginsListComponent from "./views/PluginsList"; diff --git a/src/plugins/mutations.ts b/src/plugins/mutations.ts index e52658daa..a5f1834a9 100644 --- a/src/plugins/mutations.ts +++ b/src/plugins/mutations.ts @@ -3,13 +3,13 @@ import gql from "graphql-tag"; import { TypedMutation } from "../mutations"; import { pluginsDetailsFragment } from "./queries"; import { - pluginConfigurationUpdate, - pluginConfigurationUpdateVariables + PluginConfigurationUpdate, + PluginConfigurationUpdateVariables } from "./types/pluginConfigurationUpdate"; const pluginConfigurationUpdate = gql` ${pluginsDetailsFragment} - mutation pluginConfigurationUpdate( + mutation PluginConfigurationUpdate( $id: ID! $input: PluginConfigurationUpdateInput! ) { @@ -25,6 +25,6 @@ const pluginConfigurationUpdate = gql` } `; export const TypedPluginConfigurationUpdate = TypedMutation< - pluginConfigurationUpdate, - pluginConfigurationUpdateVariables + PluginConfigurationUpdate, + PluginConfigurationUpdateVariables >(pluginConfigurationUpdate); diff --git a/src/plugins/queries.ts b/src/plugins/queries.ts index f5d90461c..518895048 100644 --- a/src/plugins/queries.ts +++ b/src/plugins/queries.ts @@ -1,8 +1,14 @@ import gql from "graphql-tag"; import { TypedQuery } from "../queries"; -import { PluginDetails, PluginDetailsVariables } from "./types/PluginDetails"; -import { PluginsList, PluginsListVariables } from "./types/PluginsList"; +import { + PluginConfiguration, + PluginConfigurationVariables +} from "./types/pluginConfiguration"; +import { + PluginConfigurations, + PluginConfigurationsVariables +} from "./types/pluginConfigurations"; export const pluginsFragment = gql` fragment pluginFragment on PluginConfiguration { @@ -29,7 +35,7 @@ export const pluginsDetailsFragment = gql` const pluginsList = gql` ${pluginsFragment} - query pluginConfigurations( + query PluginConfigurations( $first: Int $after: String $last: Int @@ -46,23 +52,29 @@ const pluginsList = gql` ...pluginFragment } } + pageInfo { + hasPreviousPage + hasNextPage + startCursor + endCursor + } } } `; export const TypedPluginsListQuery = TypedQuery< - PluginsList, - PluginsListVariables + PluginConfigurations, + PluginConfigurationsVariables >(pluginsList); const pluginsDetails = gql` ${pluginsDetailsFragment} - query pluginConfiguration($id: ID!) { + query PluginConfiguration($id: ID!) { pluginConfiguration(id: $id) { ...pluginsDetailsFragment } } `; export const TypedPluginsDetailsQuery = TypedQuery< - PluginDetails, - PluginDetailsVariables + PluginConfiguration, + PluginConfigurationVariables >(pluginsDetails); diff --git a/src/plugins/types/pluginConfiguration.ts b/src/plugins/types/pluginConfiguration.ts index 2ca376f07..9a339ce17 100644 --- a/src/plugins/types/pluginConfiguration.ts +++ b/src/plugins/types/pluginConfiguration.ts @@ -5,10 +5,10 @@ import { ConfigurationTypeFieldEnum } from "./../../types/globalTypes"; // ==================================================== -// GraphQL query operation: pluginConfiguration +// GraphQL query operation: PluginConfiguration // ==================================================== -export interface pluginConfiguration_pluginConfiguration_configuration { +export interface PluginConfiguration_pluginConfiguration_configuration { __typename: "ConfigurationItem"; name: string; type: ConfigurationTypeFieldEnum | null; @@ -17,19 +17,19 @@ export interface pluginConfiguration_pluginConfiguration_configuration { label: string | null; } -export interface pluginConfiguration_pluginConfiguration { +export interface PluginConfiguration_pluginConfiguration { __typename: "PluginConfiguration"; id: string; name: string; description: string; active: boolean; - configuration: (pluginConfiguration_pluginConfiguration_configuration | null)[] | null; + configuration: (PluginConfiguration_pluginConfiguration_configuration | null)[] | null; } -export interface pluginConfiguration { - pluginConfiguration: pluginConfiguration_pluginConfiguration | null; +export interface PluginConfiguration { + pluginConfiguration: PluginConfiguration_pluginConfiguration | null; } -export interface pluginConfigurationVariables { +export interface PluginConfigurationVariables { id: string; } diff --git a/src/plugins/types/pluginConfigurationUpdate.ts b/src/plugins/types/pluginConfigurationUpdate.ts index 0d3e0beec..fbd7db2a9 100644 --- a/src/plugins/types/pluginConfigurationUpdate.ts +++ b/src/plugins/types/pluginConfigurationUpdate.ts @@ -5,16 +5,16 @@ import { PluginConfigurationUpdateInput, ConfigurationTypeFieldEnum } from "./../../types/globalTypes"; // ==================================================== -// GraphQL mutation operation: pluginConfigurationUpdate +// GraphQL mutation operation: PluginConfigurationUpdate // ==================================================== -export interface pluginConfigurationUpdate_pluginConfigurationUpdate_errors { +export interface PluginConfigurationUpdate_pluginConfigurationUpdate_errors { __typename: "Error"; field: string | null; message: string | null; } -export interface pluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration_configuration { +export interface PluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration_configuration { __typename: "ConfigurationItem"; name: string; type: ConfigurationTypeFieldEnum | null; @@ -23,26 +23,26 @@ export interface pluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfi label: string | null; } -export interface pluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration { +export interface PluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration { __typename: "PluginConfiguration"; id: string; name: string; description: string; active: boolean; - configuration: (pluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration_configuration | null)[] | null; + configuration: (PluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration_configuration | null)[] | null; } -export interface pluginConfigurationUpdate_pluginConfigurationUpdate { +export interface PluginConfigurationUpdate_pluginConfigurationUpdate { __typename: "PluginConfigurationUpdate"; - errors: pluginConfigurationUpdate_pluginConfigurationUpdate_errors[] | null; - pluginConfiguration: pluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration | null; + errors: PluginConfigurationUpdate_pluginConfigurationUpdate_errors[] | null; + pluginConfiguration: PluginConfigurationUpdate_pluginConfigurationUpdate_pluginConfiguration | null; } -export interface pluginConfigurationUpdate { - pluginConfigurationUpdate: pluginConfigurationUpdate_pluginConfigurationUpdate | null; +export interface PluginConfigurationUpdate { + pluginConfigurationUpdate: PluginConfigurationUpdate_pluginConfigurationUpdate | null; } -export interface pluginConfigurationUpdateVariables { +export interface PluginConfigurationUpdateVariables { id: string; input: PluginConfigurationUpdateInput; } diff --git a/src/plugins/types/pluginConfigurations.ts b/src/plugins/types/pluginConfigurations.ts index 3204a58d7..cf8b48ce9 100644 --- a/src/plugins/types/pluginConfigurations.ts +++ b/src/plugins/types/pluginConfigurations.ts @@ -3,10 +3,10 @@ // This file was automatically generated and should not be edited. // ==================================================== -// GraphQL query operation: pluginConfigurations +// GraphQL query operation: PluginConfigurations // ==================================================== -export interface pluginConfigurations_pluginConfigurations_edges_node { +export interface PluginConfigurations_pluginConfigurations_edges_node { __typename: "PluginConfiguration"; id: string; name: string; @@ -14,21 +14,30 @@ export interface pluginConfigurations_pluginConfigurations_edges_node { active: boolean; } -export interface pluginConfigurations_pluginConfigurations_edges { +export interface PluginConfigurations_pluginConfigurations_edges { __typename: "PluginConfigurationCountableEdge"; - node: pluginConfigurations_pluginConfigurations_edges_node; + node: PluginConfigurations_pluginConfigurations_edges_node; } -export interface pluginConfigurations_pluginConfigurations { +export interface PluginConfigurations_pluginConfigurations_pageInfo { + __typename: "PageInfo"; + hasPreviousPage: boolean; + hasNextPage: boolean; + startCursor: string | null; + endCursor: string | null; +} + +export interface PluginConfigurations_pluginConfigurations { __typename: "PluginConfigurationCountableConnection"; - edges: pluginConfigurations_pluginConfigurations_edges[]; + edges: PluginConfigurations_pluginConfigurations_edges[]; + pageInfo: PluginConfigurations_pluginConfigurations_pageInfo; } -export interface pluginConfigurations { - pluginConfigurations: pluginConfigurations_pluginConfigurations | null; +export interface PluginConfigurations { + pluginConfigurations: PluginConfigurations_pluginConfigurations | null; } -export interface pluginConfigurationsVariables { +export interface PluginConfigurationsVariables { first?: number | null; after?: string | null; last?: number | null; diff --git a/src/plugins/views/PluginsDetails.tsx b/src/plugins/views/PluginsDetails.tsx index 12d00bf61..840ba1f16 100644 --- a/src/plugins/views/PluginsDetails.tsx +++ b/src/plugins/views/PluginsDetails.tsx @@ -1,29 +1,22 @@ -import DialogContentText from "@material-ui/core/DialogContentText"; import React from "react"; -import ActionDialog from "@saleor/components/ActionDialog"; import { WindowTitle } from "@saleor/components/WindowTitle"; import useNavigator from "@saleor/hooks/useNavigator"; -import useNotifier from "@saleor/hooks/useNotifier"; -import i18n from "../../i18n"; import { getMutationState, maybe } from "../../misc"; -import { PluginConfigurationUpdateInput } from "../../types/globalTypes"; -import PluginsDetailsPage, { FormData } from "../components/PluginsDetailsPage"; +import PluginsDetailsPage from "../components/PluginsDetailsPage"; import { TypedPluginConfigurationUpdate } from "../mutations"; import { TypedPluginsDetailsQuery } from "../queries"; -import { pluginsListUrl, pluginsUrl, PluginsUrlQueryParams } from "../urls"; +import { pluginsListUrl, PluginsListUrlQueryParams } from "../urls"; export interface PluginsDetailsProps { id: string; - params: PluginsUrlQueryParams; + params: PluginsListUrlQueryParams; } export const PluginsDetails: React.StatelessComponent = ({ - id, - params + id }) => { const navigate = useNavigator(); - const notify = useNotifier(); return ( @@ -35,7 +28,8 @@ export const PluginsDetails: React.StatelessComponent = ({ pluginConfigurationUpdateOpts.loading, maybe( () => - pluginConfigurationUpdateOpts.data.pluginConfiguration.errors + pluginConfigurationUpdateOpts.data.pluginConfigurationUpdate + .errors ) ); @@ -50,8 +44,8 @@ export const PluginsDetails: React.StatelessComponent = ({ disabled={PluginDetails.loading} errors={maybe( () => - pluginConfigurationUpdateOpts.data.pluginConfiguration - .errors, + pluginConfigurationUpdateOpts.data + .pluginConfigurationUpdate.errors, [] )} saveButtonBarState={formTransitionState} @@ -62,7 +56,7 @@ export const PluginsDetails: React.StatelessComponent = ({ formData.configuration.map(item => { configurationInput.push({ name: item.name, - value: item.value + value: item.value.toString() }); }); pluginConfigurationUpdate({ diff --git a/src/plugins/views/PluginsList.tsx b/src/plugins/views/PluginsList.tsx index ef954a175..58d2ea0c4 100644 --- a/src/plugins/views/PluginsList.tsx +++ b/src/plugins/views/PluginsList.tsx @@ -1,29 +1,16 @@ -import Button from "@material-ui/core/Button"; -import DialogContentText from "@material-ui/core/DialogContentText"; -import IconButton from "@material-ui/core/IconButton"; -import DeleteIcon from "@material-ui/icons/Delete"; -import React from "react"; - -import ActionDialog from "@saleor/components/ActionDialog"; import { configurationMenuUrl } from "@saleor/configuration"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; -import useNotifier from "@saleor/hooks/useNotifier"; import usePaginator, { createPaginationState } from "@saleor/hooks/usePaginator"; -import i18n from "@saleor/i18n"; -import { getMutationState, maybe } from "@saleor/misc"; +import { maybe } from "@saleor/misc"; import { ListViews } from "@saleor/types"; +import React from "react"; import PluginsListPage from "../components/PluginsListPage/PluginsListPage"; import { TypedPluginsListQuery } from "../queries"; -import { - pluginsListUrl, - PluginsListUrlDialog, - PluginsListUrlQueryParams, - pluginsUrl -} from "../urls"; +import { PluginsListUrlQueryParams, pluginsUrl } from "../urls"; interface PluginsListProps { params: PluginsListUrlQueryParams; @@ -33,25 +20,23 @@ export const PluginsList: React.StatelessComponent = ({ params }) => { const navigate = useNavigator(); - const notify = useNotifier(); const paginate = usePaginator(); - const { isSelected, listElements, reset, toggle, toggleAll } = useBulkActions( + const { isSelected, listElements, toggle, toggleAll } = useBulkActions( params.ids ); const { updateListSettings, settings } = useListSettings( - ListViews.PAGES_LIST + ListViews.PLUGINS_LIST ); const paginationState = createPaginationState(settings.rowNumber, params); return ( - {({ data, loading, refetch }) => { + {({ data, loading }) => { const { loadNextPage, loadPreviousPage, pageInfo } = paginate( - maybe(() => data.pages.pageInfo), + maybe(() => data.pluginConfigurations.pageInfo), paginationState, params ); - return ( <> = ({ data.pluginConfigurations.edges.map(edge => edge.node) )} pageInfo={pageInfo} + onAdd={() => navigate(configurationMenuUrl)} onBack={() => navigate(configurationMenuUrl)} onNextPage={loadNextPage} onPreviousPage={loadPreviousPage} diff --git a/src/types.ts b/src/types.ts index dad6b8952..8a6b01353 100644 --- a/src/types.ts +++ b/src/types.ts @@ -23,6 +23,7 @@ export enum ListViews { NAVIGATION_LIST = "NAVIGATION_LIST", ORDER_LIST = "ORDER_LIST", PAGES_LIST = "PAGES_LIST", + PLUGINS_LIST = "PLUGIN_LIST", PRODUCT_LIST = "PRODUCT_LIST", SALES_LIST = "SALES_LIST", SHIPPING_METHODS_LIST = "SHIPPING_METHODS_LIST",