import { Component, createSignal, For, onMount, createMemo, Show } from 'solid-js'; import Button from './components/Button'; import styles from './App.module.scss'; import { trackings, courierMap, fetchTrackings, deleteTracking, editTracking, getSelectedCouriers, customDomain, } from './storages/metaBox'; import EditTrackingModal, { FormValue } from './components/EditTrackingModal'; import { Tracking } from './typings/trackings'; import { calcUnfulfilledItems } from './utils/common'; const App: Component = () => { const [showModal, setShowModal] = createSignal(false); const [editingTracking, setEditingTracking] = createSignal(); onMount(() => { fetchTrackings(); getSelectedCouriers(); }); const handleOk = async (values: FormValue) => { const selectedItems = values.line_items || {}; await editTracking({ ...values, line_items: Object.entries(selectedItems) .map(([id, quantity]) => ({ id: Number(id), quantity, })) .filter((item) => item.quantity > 0), }); setShowModal(false); setEditingTracking(undefined); }; const handleCancel = () => { setShowModal(false); setEditingTracking(undefined); }; const formatTackingLink = (tracking: Tracking) => { return /^https?:\/\//.test(customDomain()) ? `${customDomain()}/${tracking.slug}/${tracking.tracking_number}` : `https://${customDomain()}/${tracking.slug}/${tracking.tracking_number}`; }; return (
{/* trackings */}
{(item, index) => (
{courierMap().get(item.slug)?.name || item.slug}
)}
{/* add button */}
); }; export default App;