Revert changes of product urls

This commit is contained in:
Dawid Tarasiuk 2020-09-22 12:50:28 +02:00
parent e8e1162698
commit 6d39899db3
8 changed files with 18 additions and 64 deletions

View file

@ -211,7 +211,7 @@ export const CategoryDetails: React.FC<CategoryDetailsProps> = ({
disabled={loading} disabled={loading}
errors={updateResult.data?.categoryUpdate.errors || []} errors={updateResult.data?.categoryUpdate.errors || []}
onAddCategory={() => navigate(categoryAddUrl(id))} onAddCategory={() => navigate(categoryAddUrl(id))}
onAddProduct={() => navigate(productAddUrl())} onAddProduct={() => navigate(productAddUrl)}
onBack={() => onBack={() =>
navigate( navigate(
maybe(() => categoryUrl(data.category.parent.id), categoryListUrl()) maybe(() => categoryUrl(data.category.parent.id), categoryListUrl())

View file

@ -46,7 +46,7 @@ export function searchInCommands(
{ {
label: intl.formatMessage(messages.createProduct), label: intl.formatMessage(messages.createProduct),
onClick: () => { onClick: () => {
navigate(productAddUrl()); navigate(productAddUrl);
return false; return false;
} }
}, },

View file

@ -9,7 +9,6 @@ import { Route, RouteComponentProps, Switch } from "react-router-dom";
import { WindowTitle } from "../components/WindowTitle"; import { WindowTitle } from "../components/WindowTitle";
import { import {
productAddPath, productAddPath,
ProductAddUrlQueryParams,
productImagePath, productImagePath,
ProductImageUrlQueryParams, ProductImageUrlQueryParams,
productListPath, productListPath,
@ -18,12 +17,11 @@ import {
productPath, productPath,
ProductUrlQueryParams, ProductUrlQueryParams,
productVariantAddPath, productVariantAddPath,
ProductVariantAddUrlQueryParams,
productVariantCreatorPath, productVariantCreatorPath,
productVariantEditPath, productVariantEditPath,
ProductVariantEditUrlQueryParams ProductVariantEditUrlQueryParams
} from "./urls"; } from "./urls";
import ProductCreateComponent from "./views/ProductCreate"; import ProductCreate from "./views/ProductCreate";
import ProductImageComponent from "./views/ProductImage"; import ProductImageComponent from "./views/ProductImage";
import ProductListComponent from "./views/ProductList"; import ProductListComponent from "./views/ProductList";
import ProductUpdateComponent from "./views/ProductUpdate"; import ProductUpdateComponent from "./views/ProductUpdate";
@ -47,13 +45,6 @@ const ProductList: React.FC<RouteComponentProps<any>> = ({ location }) => {
return <ProductListComponent params={params} />; return <ProductListComponent params={params} />;
}; };
const ProductCreate: React.FC<RouteComponentProps> = () => {
const qs = parseQs(location.search.substr(1));
const params: ProductAddUrlQueryParams = qs;
return <ProductCreateComponent params={params} />;
};
const ProductUpdate: React.FC<RouteComponentProps<any>> = ({ match }) => { const ProductUpdate: React.FC<RouteComponentProps<any>> = ({ match }) => {
const qs = parseQs(location.search.substr(1)); const qs = parseQs(location.search.substr(1));
const params: ProductUrlQueryParams = qs; const params: ProductUrlQueryParams = qs;
@ -100,17 +91,11 @@ const ProductImage: React.FC<RouteComponentProps<any>> = ({
const ProductVariantCreate: React.FC<RouteComponentProps<any>> = ({ const ProductVariantCreate: React.FC<RouteComponentProps<any>> = ({
match match
}) => { }) => (
const qs = parseQs(location.search.substr(1));
const params: ProductVariantAddUrlQueryParams = qs;
return (
<ProductVariantCreateComponent <ProductVariantCreateComponent
productId={decodeURIComponent(match.params.id)} productId={decodeURIComponent(match.params.id)}
params={params}
/> />
); );
};
const ProductVariantCreator: React.FC<RouteComponentProps<{ const ProductVariantCreator: React.FC<RouteComponentProps<{
id: string; id: string;

View file

@ -16,10 +16,7 @@ import { stringifyQs } from "../utils/urls";
const productSection = "/products/"; const productSection = "/products/";
export const productAddPath = urlJoin(productSection, "add"); export const productAddPath = urlJoin(productSection, "add");
export type ProductAddUrlDialog = "leave-screen"; export const productAddUrl = productAddPath;
export type ProductAddUrlQueryParams = Dialog<ProductAddUrlDialog>;
export const productAddUrl = (params?: ProductAddUrlQueryParams) =>
productAddPath + "?" + stringifyQs(params);
export const productListPath = productSection; export const productListPath = productSection;
export type ProductListUrlDialog = export type ProductListUrlDialog =
@ -69,14 +66,14 @@ export const productListUrl = (params?: ProductListUrlQueryParams): string =>
productListPath + "?" + stringifyQs(params); productListPath + "?" + stringifyQs(params);
export const productPath = (id: string) => urlJoin(productSection + id); export const productPath = (id: string) => urlJoin(productSection + id);
export type ProductUrlDialog = "remove" | "remove-variants" | "leave-screen"; export type ProductUrlDialog = "remove" | "remove-variants";
export type ProductUrlQueryParams = BulkAction & Dialog<ProductUrlDialog>; export type ProductUrlQueryParams = BulkAction & Dialog<ProductUrlDialog>;
export const productUrl = (id: string, params?: ProductUrlQueryParams) => export const productUrl = (id: string, params?: ProductUrlQueryParams) =>
productPath(encodeURIComponent(id)) + "?" + stringifyQs(params); productPath(encodeURIComponent(id)) + "?" + stringifyQs(params);
export const productVariantEditPath = (productId: string, variantId: string) => export const productVariantEditPath = (productId: string, variantId: string) =>
urlJoin(productSection, productId, "variant", variantId); urlJoin(productSection, productId, "variant", variantId);
export type ProductVariantEditUrlDialog = "remove" | "leave-screen"; export type ProductVariantEditUrlDialog = "remove";
export type ProductVariantEditUrlQueryParams = Dialog< export type ProductVariantEditUrlQueryParams = Dialog<
ProductVariantEditUrlDialog ProductVariantEditUrlDialog
>; >;
@ -99,17 +96,8 @@ export const productVariantCreatorUrl = (productId: string) =>
export const productVariantAddPath = (productId: string) => export const productVariantAddPath = (productId: string) =>
urlJoin(productSection, productId, "variant/add"); urlJoin(productSection, productId, "variant/add");
export type ProductVariantAddUrlDialog = "leave-screen"; export const productVariantAddUrl = (productId: string): string =>
export type ProductVariantAddUrlQueryParams = Dialog< productVariantAddPath(encodeURIComponent(productId));
ProductVariantAddUrlDialog
>;
export const productVariantAddUrl = (
productId: string,
params?: ProductVariantAddUrlQueryParams
): string =>
productVariantAddPath(encodeURIComponent(productId)) +
"?" +
stringifyQs(params);
export const productImagePath = (productId: string, imageId: string) => export const productImagePath = (productId: string, imageId: string) =>
urlJoin(productSection, productId, "image", imageId); urlJoin(productSection, productId, "image", imageId);

View file

@ -28,13 +28,9 @@ import {
useProductCreateMutation, useProductCreateMutation,
useProductSetAvailabilityForPurchase useProductSetAvailabilityForPurchase
} from "../mutations"; } from "../mutations";
import { ProductAddUrlQueryParams, productListUrl, productUrl } from "../urls"; import { productListUrl, productUrl } from "../urls";
interface ProductCreateViewProps { export const ProductCreateView: React.FC = () => {
params: ProductAddUrlQueryParams;
}
export const ProductCreateView: React.FC<ProductCreateViewProps> = ({}) => {
const navigate = useNavigator(); const navigate = useNavigator();
const notify = useNotifier(); const notify = useNotifier();
const shop = useShop(); const shop = useShop();

View file

@ -344,7 +344,7 @@ export const ProductList: React.FC<ProductListProps> = ({ params }) => {
() => attributes.data.availableInGrid.pageInfo.hasNextPage, () => attributes.data.availableInGrid.pageInfo.hasNextPage,
false false
)} )}
onAdd={() => navigate(productAddUrl())} onAdd={() => navigate(productAddUrl)}
disabled={loading} disabled={loading}
products={maybe(() => data.products.edges.map(edge => edge.node))} products={maybe(() => data.products.edges.map(edge => edge.node))}
onFetchMore={() => onFetchMore={() =>

View file

@ -1,5 +1,4 @@
import placeholderImg from "@assets/images/placeholder255x255.png"; import placeholderImg from "@assets/images/placeholder255x255.png";
import LeaveScreenDialog from "@saleor/components/LeaveScreenDialog";
import NotFoundPage from "@saleor/components/NotFoundPage"; import NotFoundPage from "@saleor/components/NotFoundPage";
import { WindowTitle } from "@saleor/components/WindowTitle"; import { WindowTitle } from "@saleor/components/WindowTitle";
import useNavigator from "@saleor/hooks/useNavigator"; import useNavigator from "@saleor/hooks/useNavigator";
@ -54,7 +53,6 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
productId, productId,
params params
}) => { }) => {
const { action } = params;
const shop = useShop(); const shop = useShop();
const navigate = useNavigator(); const navigate = useNavigator();
const notify = useNotifier(); const notify = useNotifier();
@ -82,7 +80,7 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
const [updateMetadata] = useMetadataUpdate({}); const [updateMetadata] = useMetadataUpdate({});
const [updatePrivateMetadata] = usePrivateMetadataUpdate({}); const [updatePrivateMetadata] = usePrivateMetadataUpdate({});
const [openModal, closeModal] = createDialogActionHandlers< const [openModal] = createDialogActionHandlers<
ProductVariantEditUrlDialog, ProductVariantEditUrlDialog,
ProductVariantEditUrlQueryParams ProductVariantEditUrlQueryParams
>( >(
@ -258,13 +256,6 @@ export const ProductVariant: React.FC<ProductUpdateProps> = ({
open={params.action === "remove"} open={params.action === "remove"}
name={data?.productVariant?.name} name={data?.productVariant?.name}
/> />
<LeaveScreenDialog
onSaveChanges={() => navigate(warehouseListPath)}
onRejectChanges={() => navigate(warehouseListPath)}
onClose={closeModal}
open={action === "leave-screen"}
confirmButtonState="default"
/>
</> </>
); );
}; };

View file

@ -24,17 +24,11 @@ import {
useVariantCreateMutation useVariantCreateMutation
} from "../mutations"; } from "../mutations";
import { useProductVariantCreateQuery } from "../queries"; import { useProductVariantCreateQuery } from "../queries";
import { import { productListUrl, productUrl, productVariantEditUrl } from "../urls";
productListUrl,
productUrl,
ProductVariantAddUrlQueryParams,
productVariantEditUrl
} from "../urls";
import { createVariantReorderHandler } from "./ProductUpdate/handlers"; import { createVariantReorderHandler } from "./ProductUpdate/handlers";
interface ProductVariantCreateProps { interface ProductVariantCreateProps {
productId: string; productId: string;
params: ProductVariantAddUrlQueryParams;
} }
export const ProductVariant: React.FC<ProductVariantCreateProps> = ({ export const ProductVariant: React.FC<ProductVariantCreateProps> = ({