|
1 | 1 | import { Button, Heading, Text, toast } from "@medusajs/ui"
|
2 | 2 | import { RouteDrawer, useRouteModal } from "../../../components/modals"
|
3 | 3 | import { useTranslation } from "react-i18next"
|
4 |
| -import { useState } from "react" |
| 4 | +import { useMemo, useState } from "react" |
5 | 5 | import { useConfirmImportProducts, useImportProducts } from "../../../hooks/api"
|
6 | 6 | import { UploadImport } from "./components/upload-import"
|
7 | 7 | import { ImportSummary } from "./components/import-summary"
|
8 | 8 | import { Trash } from "@medusajs/icons"
|
9 | 9 | import { FilePreview } from "../../../components/common/file-preview"
|
| 10 | +import { getProductImportCsvTemplate } from "./helpers/import-template" |
10 | 11 |
|
11 | 12 | export const ProductImport = () => {
|
12 | 13 | const { t } = useTranslation()
|
@@ -34,6 +35,10 @@ const ProductImportContent = () => {
|
34 | 35 | const { mutateAsync: confirm } = useConfirmImportProducts()
|
35 | 36 | const { handleSuccess } = useRouteModal()
|
36 | 37 |
|
| 38 | + const productImportTemplateContent = useMemo(() => { |
| 39 | + return getProductImportCsvTemplate() |
| 40 | + }, []) |
| 41 | + |
37 | 42 | const handleUploaded = async (file: File) => {
|
38 | 43 | setFilename(file.name)
|
39 | 44 | await importProducts(
|
@@ -112,9 +117,8 @@ const ProductImportContent = () => {
|
112 | 117 | </Text>
|
113 | 118 | <div className="mt-4">
|
114 | 119 | <FilePreview
|
115 |
| - filename={"medusa-template-product-list.csv"} |
116 |
| - // TODO: Where would the template file be stored? |
117 |
| - url={"https://example.com"} |
| 120 | + filename={"product-import-template.csv"} |
| 121 | + url={productImportTemplateContent} |
118 | 122 | />
|
119 | 123 | </div>
|
120 | 124 | </RouteDrawer.Body>
|
|
0 commit comments