chore: clean code, add delete

This commit is contained in:
Rodolfo Ruiz
2025-09-06 20:45:56 -06:00
parent b3209a4019
commit f7adaf1b18
5 changed files with 24 additions and 26 deletions

View File

@@ -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',

View File

@@ -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: '',

View File

@@ -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,

View File

@@ -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>

View File

@@ -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);
}; };