Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -35,7 +35,7 @@ import { DeleteConfirmDialog } from "../ui/confirm-dialog";
|
||||
|
||||
import type { LocationItem } from "./QuoteRegistrationV2";
|
||||
import type { FinishedGoods } from "./actions";
|
||||
import * as XLSX from "xlsx";
|
||||
// xlsx는 동적 로드 (번들 크기 최적화)
|
||||
|
||||
// =============================================================================
|
||||
// 상수
|
||||
@@ -181,7 +181,8 @@ export function LocationListPanel({
|
||||
}, [formData, finishedGoods, onAddLocation]);
|
||||
|
||||
// 엑셀 양식 다운로드
|
||||
const handleDownloadTemplate = useCallback(() => {
|
||||
const handleDownloadTemplate = useCallback(async () => {
|
||||
const XLSX = await import("xlsx");
|
||||
const templateData = [
|
||||
{
|
||||
층: "1층",
|
||||
@@ -219,10 +220,11 @@ export function LocationListPanel({
|
||||
|
||||
// 엑셀 업로드
|
||||
const handleFileUpload = useCallback(
|
||||
(event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
async (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
const file = event.target.files?.[0];
|
||||
if (!file) return;
|
||||
|
||||
const XLSX = await import("xlsx");
|
||||
const reader = new FileReader();
|
||||
reader.onload = (e) => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user