chore: clean code, add delete
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
export default class ProductsApi {
|
export default class ProductsApi {
|
||||||
constructor(token) {
|
constructor(token) {
|
||||||
this.baseUrl = 'https://inventory-bff.dream-views.com/api/v1/FurnitureVariant';
|
this.baseUrl = 'https://inventory-bff.dream-views.com/api/v1/FurnitureVariant';
|
||||||
this.token = token;
|
this.token = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
headers(json = true) {
|
headers(json = true) {
|
||||||
@@ -53,7 +53,7 @@ export default class ProductsApi {
|
|||||||
return res.json();
|
return res.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
async changeStatusVariant(payload) {
|
async changeStatusVariant(payload) {
|
||||||
// If your API is change status, reuse updateVariant.
|
// If your API is change status, reuse updateVariant.
|
||||||
const res = await fetch(`${this.baseUrl}/ChangeStatus`, {
|
const res = await fetch(`${this.baseUrl}/ChangeStatus`, {
|
||||||
method: 'PATCH',
|
method: 'PATCH',
|
||||||
|
|||||||
@@ -52,14 +52,14 @@ export default function AddOrEditCategoryForm({ onAdd, initialData, onCancel, ma
|
|||||||
const [types, setTypes] = useState([]);
|
const [types, setTypes] = useState([]);
|
||||||
const [allTags, setAllTags] = useState([]);
|
const [allTags, setAllTags] = useState([]);
|
||||||
|
|
||||||
const tagLabelById = useMemo(() => {
|
const tagLabelById = useMemo(() => {
|
||||||
const map = {};
|
const map = {};
|
||||||
for (const t of allTags) {
|
for (const t of allTags) {
|
||||||
const key = t._id;
|
const key = t._id;
|
||||||
map[key] = t.tagName || t.name || key;
|
map[key] = t.tagName || t.name || key;
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}, [allTags]);
|
}, [allTags]);
|
||||||
|
|
||||||
const [form, setForm] = useState({
|
const [form, setForm] = useState({
|
||||||
_id: '',
|
_id: '',
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ export default function Categories() {
|
|||||||
{
|
{
|
||||||
field: 'actions',
|
field: 'actions',
|
||||||
headerName: '',
|
headerName: '',
|
||||||
width: 130,
|
width: 150,
|
||||||
sortable: false,
|
sortable: false,
|
||||||
filterable: false,
|
filterable: false,
|
||||||
disableExport: true,
|
disableExport: true,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export default function ProductCollections() {
|
|||||||
const tagTypeApi = useMemo(() => new TagTypeApi(token), [token]);
|
const tagTypeApi = useMemo(() => new TagTypeApi(token), [token]);
|
||||||
const categoriesApi = useMemo(() => new CategoriesApi(token), [token]);
|
const categoriesApi = useMemo(() => new CategoriesApi(token), [token]);
|
||||||
|
|
||||||
const toast = useApiToast();
|
const { handleError } = useApiToast();
|
||||||
|
|
||||||
const [rows, setRows] = useState([]);
|
const [rows, setRows] = useState([]);
|
||||||
const [rawRows, setRawRows] = useState([]);
|
const [rawRows, setRawRows] = useState([]);
|
||||||
@@ -85,7 +85,7 @@ export default function ProductCollections() {
|
|||||||
return found?.tagName || String(value);
|
return found?.tagName || String(value);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// Cargar TagTypes + Tags
|
// Cargar TagTypes + Tags
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let mounted = true;
|
let mounted = true;
|
||||||
@@ -153,7 +153,7 @@ export default function ProductCollections() {
|
|||||||
setRawRows(normalized);
|
setRawRows(normalized);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
toast.error(err?.message || 'Error loading variants');
|
handleError(err, 'Error loading product collections');
|
||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
@@ -177,12 +177,10 @@ export default function ProductCollections() {
|
|||||||
const confirmDelete = async () => {
|
const confirmDelete = async () => {
|
||||||
try {
|
try {
|
||||||
if (!editRow?.id) return;
|
if (!editRow?.id) return;
|
||||||
await api.changeStatusVariant({ mongoId: editRow.id, status: 'Inactive' });
|
await api.changeStatusVariant({ mongoId: editRow._Id, status: 'Inactive' });
|
||||||
await load();
|
await load();
|
||||||
toast.success('Deleted successfully');
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
toast.error(err?.message || 'Delete failed');
|
|
||||||
} finally {
|
} finally {
|
||||||
setConfirmOpen(false);
|
setConfirmOpen(false);
|
||||||
setEditRow(null);
|
setEditRow(null);
|
||||||
@@ -361,13 +359,13 @@ export default function ProductCollections() {
|
|||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Dialog open={open} onClose={() => setOpen(false)} maxWidth="md" fullWidth>
|
<Dialog open={open} onClose={() => setOpen(false)} maxWidth="md" fullWidth>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
{viewOnly
|
{viewOnly
|
||||||
? 'View Product Collection'
|
? 'View Product Collection'
|
||||||
: editRow
|
: editRow
|
||||||
? 'Edit Product Collection'
|
? 'Edit Product Collection'
|
||||||
: 'Add Product Collection'}
|
: 'Add Product Collection'}
|
||||||
</DialogTitle>
|
</DialogTitle>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<AddOrEditProductCollectionForm
|
<AddOrEditProductCollectionForm
|
||||||
initialData={editRow}
|
initialData={editRow}
|
||||||
@@ -384,7 +382,7 @@ export default function ProductCollections() {
|
|||||||
/>
|
/>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
||||||
<Dialog open={confirmOpen} onClose={() => setConfirmOpen(false)}>
|
<Dialog open={confirmOpen} onClose={() => setConfirmOpen(false)}>
|
||||||
<DialogTitle>Delete Product Collection</DialogTitle>
|
<DialogTitle>Delete Product Collection</DialogTitle>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export default function UserManagement() {
|
|||||||
status: r.status ?? 'Active',
|
status: r.status ?? 'Active',
|
||||||
companies: Array.isArray(r.companies) ? r.companies : [],
|
companies: Array.isArray(r.companies) ? r.companies : [],
|
||||||
projects: Array.isArray(r.projects) ? r.projects : [],
|
projects: Array.isArray(r.projects) ? r.projects : [],
|
||||||
};
|
};
|
||||||
setEditingData(normalized);
|
setEditingData(normalized);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user