toga-ai 1.0.394 → 1.0.395
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
| Doc | Summary | Files |
|
|
4
4
|
|-----|---------|-------|
|
|
5
5
|
| [TOGa Supply (toga2-supply) Architecture](architecture.md) | `toga2-supply` is the **React + Vite frontend** for TOGa Supply — warehouse fulfillment tooling (shipment selection, fulfill & ship against carrier APIs, NetSui | toga2-supply/src/api/toga.ts, toga2-supply/src/pages/ShipmentItems/view/ShipmentItemsPage.tsx, toga2-supply/src/pages/EditShipment/view/EditShipmentPage.tsx, toga2-supply/src/pages/EditShipment/api/UpdateShipmentApi.ts, toga2-supply/src/pages/Shipments/view/components/ShipmentsCardTableForm/ShipmentsCardTableForm.tsx |
|
|
6
|
-
| [Fulfill & Ship](features/fulfill-and-ship.md) | Fulfill & Ship lets a warehouse user select sales-order line items, enter serials, pick a carrier/method, and in one action: create the Item Fulfillment records | toga2-supply/src/components/ui/Tables/BasicTable/BasicTable.tsx, toga2-supply/src/pages/ShipmentItems/view/forms/ShipmentItemsTable.tsx, toga2-supply/src/pages/EditShipment/view/components/forms/EditShipmentForm.tsx, toga2-supply/src/components/ui/BaseInput/UnitSelect.tsx, toga2-supply/src/pages/EditShipment/view/modals/SerialNumbersModal.tsx, toga2-supply/src/pages/ShipmentItems/view/ShipmentItemsPage.tsx, toga2-supply/src/pages/EditShipment/view/EditShipmentPage.tsx, toga2-supply/src/pages/EditShipment/view/components/forms/EditShipmentForm.tsx, toga2-supply/src/pages/EditShipment/view/components/SelectedShipmentItemsTable.tsx, toga2-supply/src/pages/EditShipment/view/helpers/ShipmentDetailsForm/renderEditShipmentFormInput.tsx, toga2-supply/src/pages/EditShipment/viewModel/FIELDS/DUMMYUPDATESHIPMENTFIELDS.json, toga2-supply/src/pages/EditShipment/helpers/ShipmentDetailsForm/renderEditShipmentFormInput.tsx, toga2-supply/tailwind.config.cjs, toga2-supply/src/pages/EditShipment/view/modals/ReturnShippingModal.tsx, toga2-supply/src/styles/index.scss, toga2-supply/src/components/ui/BaseInput/BaseInput.tsx, toga2-supply/src/pages/EditShipment/api/UpdateShipmentApi.ts, toga2-supply/src/pages/EditShipment/viewModel/signatureTypes.ts, toga2-supply/src/pages/EditShipment/view/modals/SelectReturnAddressModal.tsx, toga2-supply/src/pages/EditShipment/helpers/ShipmentDetailsForm/formatShipmentData.ts, toga2-supply/src/pages/EditShipment/types.ts, toga2-supply/src/pages/Shipments/view/ShipmentsPage.tsx, toga2-supply/src/pages/Shipments/view/components/ShipmentsCardTableForm/ShipmentsCardTableForm.tsx, toga2-supply/src/pages/Shipments/api/ShipmentsApi.ts, toga2-supply/src/pages/Shipments/types.ts, toga2-supply/src/pages/FulfilledShipments/view/FulfilledShipmentsPage.tsx, toga2-supply/src/components/ui/CardTable/CardTable.tsx, toga2-supply/src/components/ui/CardTable/types.ts, toga2-supply/src/assets/pen-line.svg, _underscore/Model/Client/ItemFulfillment.php, _underscore/Trait/Netsuite/ItemFulfillment.php, _underscore/Component/Library/Carriers/Ups/Ups.php |
|
|
6
|
+
| [Fulfill & Ship](features/fulfill-and-ship.md) | Fulfill & Ship lets a warehouse user select sales-order line items, enter serials, pick a carrier/method, and in one action: create the Item Fulfillment records | toga2-supply/src/components/ui/Tables/BasicTable/BasicTable.tsx, toga2-supply/src/pages/ShipmentItems/view/forms/ShipmentItemsTable.tsx, toga2-supply/src/pages/ShipmentItems/api/ShipmentItemsApi.ts, toga2-supply/src/pages/ShipmentItems/types.ts, toga2-supply/src/pages/EditShipment/viewModel/FIELDS/RETURNLABELFIELDS.json, toga2-supply/src/pages/EditShipment/view/components/forms/EditShipmentForm.tsx, toga2-supply/src/components/ui/BaseInput/UnitSelect.tsx, toga2-supply/src/pages/EditShipment/view/modals/SerialNumbersModal.tsx, toga2-supply/src/pages/ShipmentItems/view/ShipmentItemsPage.tsx, toga2-supply/src/pages/EditShipment/view/EditShipmentPage.tsx, toga2-supply/src/pages/EditShipment/view/components/forms/EditShipmentForm.tsx, toga2-supply/src/pages/EditShipment/view/components/SelectedShipmentItemsTable.tsx, toga2-supply/src/pages/EditShipment/view/helpers/ShipmentDetailsForm/renderEditShipmentFormInput.tsx, toga2-supply/src/pages/EditShipment/viewModel/FIELDS/DUMMYUPDATESHIPMENTFIELDS.json, toga2-supply/src/pages/EditShipment/helpers/ShipmentDetailsForm/renderEditShipmentFormInput.tsx, toga2-supply/tailwind.config.cjs, toga2-supply/src/pages/EditShipment/view/modals/ReturnShippingModal.tsx, toga2-supply/src/styles/index.scss, toga2-supply/src/components/ui/BaseInput/BaseInput.tsx, toga2-supply/src/pages/EditShipment/api/UpdateShipmentApi.ts, toga2-supply/src/pages/EditShipment/viewModel/signatureTypes.ts, toga2-supply/src/pages/EditShipment/view/modals/SelectReturnAddressModal.tsx, toga2-supply/src/pages/EditShipment/helpers/ShipmentDetailsForm/formatShipmentData.ts, toga2-supply/src/pages/EditShipment/types.ts, toga2-supply/src/pages/Shipments/view/ShipmentsPage.tsx, toga2-supply/src/pages/Shipments/view/components/ShipmentsCardTableForm/ShipmentsCardTableForm.tsx, toga2-supply/src/pages/Shipments/api/ShipmentsApi.ts, toga2-supply/src/pages/Shipments/types.ts, toga2-supply/src/pages/FulfilledShipments/view/FulfilledShipmentsPage.tsx, toga2-supply/src/components/ui/CardTable/CardTable.tsx, toga2-supply/src/components/ui/CardTable/types.ts, toga2-supply/src/assets/pen-line.svg, _underscore/Model/Client/ItemFulfillment.php, _underscore/Trait/Netsuite/ItemFulfillment.php, _underscore/Component/Library/Carriers/Ups/Ups.php |
|
|
7
7
|
| [AWS Amplify Build & Deploy (non-prod environments)](workflows/amplify-build-and-deploy.md) | How `toga2-supply` (React + Vite) builds and deploys on **AWS Amplify**. | toga2-supply/amplify.yml, toga2-supply/.gitattributes, toga2-supply/.github/workflows/sync-stage-environments.yml, toga2-supply/.env.qc-security |
|
|
@@ -11,6 +11,9 @@ owners: [mhammontree]
|
|
|
11
11
|
files:
|
|
12
12
|
- toga2-supply/src/components/ui/Tables/BasicTable/BasicTable.tsx
|
|
13
13
|
- toga2-supply/src/pages/ShipmentItems/view/forms/ShipmentItemsTable.tsx
|
|
14
|
+
- toga2-supply/src/pages/ShipmentItems/api/ShipmentItemsApi.ts
|
|
15
|
+
- toga2-supply/src/pages/ShipmentItems/types.ts
|
|
16
|
+
- toga2-supply/src/pages/EditShipment/viewModel/FIELDS/RETURNLABELFIELDS.json
|
|
14
17
|
- toga2-supply/src/pages/EditShipment/view/components/forms/EditShipmentForm.tsx
|
|
15
18
|
- toga2-supply/src/components/ui/BaseInput/UnitSelect.tsx
|
|
16
19
|
- toga2-supply/src/pages/EditShipment/view/modals/SerialNumbersModal.tsx
|
|
@@ -309,6 +312,33 @@ the call 403s and returns no label.
|
|
|
309
312
|
|
|
310
313
|
## Gotchas / known issues
|
|
311
314
|
|
|
315
|
+
- **⚠ The item-image tables hardcoded the placeholder and never requested the image.** The Select
|
|
316
|
+
Items (`ShipmentItemsTable`), Update Info, and Add-Serial (`SelectedShipmentItemsTable`) tables
|
|
317
|
+
rendered `imageUrl={placeholderImage}` as a **constant**, so a real item image could never appear.
|
|
318
|
+
The item image is exposed via **two computed SQL fields on the `_underscore` Item model** (referenced,
|
|
319
|
+
not modified this commit) — request **both** in the V2 field selectors and render
|
|
320
|
+
**`item._imageUrl || item._thumbnailImageUrl || placeholder`**:
|
|
321
|
+
- **`_imageUrl`** — resolves `Items.imageId` → `Images.sourceUrl` (the single **primary** image).
|
|
322
|
+
- **`_thumbnailImageUrl`** — resolves from **`ItemImages`** (per-item thumbnail/low/medium/high
|
|
323
|
+
resolutions) via `thumbnailImageId`, ordered `isDefault DESC`, **excluding** `sourceUrl LIKE
|
|
324
|
+
'%Manufacturer%'`.
|
|
325
|
+
|
|
326
|
+
Two distinct DB paths back an item image — `Items.imageId → Images` (one primary) and the `ItemImages`
|
|
327
|
+
table (multi-resolution, `isDefault` flag) — and in both cases the URL lives in `Images.sourceUrl`.
|
|
328
|
+
The `_imageUrl || _thumbnailImageUrl || placeholder` fallback covers imageId-only, ItemImages-only, or
|
|
329
|
+
neither. Wiring an image anywhere in the tool: request **both** computed fields (add to the API field
|
|
330
|
+
selectors + response types), don't hardcode the placeholder. Verified end-to-end against a client DB
|
|
331
|
+
with rolled-back test data. Files: `ShipmentItems/api/ShipmentItemsApi.ts`, `ShipmentItemsTable.tsx`,
|
|
332
|
+
`ShipmentItems/types.ts`, `EditShipment/api/UpdateShipmentApi.ts`, `EditShipmentForm.tsx`,
|
|
333
|
+
`SelectedShipmentItemsTable.tsx`, `EditShipment/types.ts`.
|
|
334
|
+
- **⚠ The shared `ExpandableCellContent` truncates by a FIXED CHARACTER COUNT, not by width — so it
|
|
335
|
+
can't be responsive.** `ExpandableCellContent` cuts a cell at `columnDataLength` characters
|
|
336
|
+
(e.g. 55), so a column truncates early regardless of available width and **does not react to
|
|
337
|
+
window/page resize**. For width-responsive truncation, render the cell as a plain
|
|
338
|
+
`<div className="truncate max-w-[NNvw]" title={full}>` — CSS overflow-ellipsis with a
|
|
339
|
+
viewport-relative max-width so the ellipsis point tracks the page size, and the native `title`
|
|
340
|
+
shows the full text on hover. (Applied to the Description column in `ShipmentItemsTable.tsx` /
|
|
341
|
+
`SelectedShipmentItemsTable.tsx`.)
|
|
312
342
|
- **⚠ A portaled react-select menu loses the control's inherited font size.** `BaseInput`'s
|
|
313
343
|
react-select menus now portal to `<body>` (`menuPortalTarget={document.body}` +
|
|
314
344
|
`styles.menuPortal` `zIndex 9999`, on both single- and multi-select) so the menu can't be
|
|
@@ -588,6 +618,18 @@ not the base `_Model_Client_ItemFulfillment`. Tested with GroWrk; UPS support wa
|
|
|
588
618
|
for Compass and is not yet in prod.
|
|
589
619
|
|
|
590
620
|
## Change history
|
|
621
|
+
- 2026-07-21 — TRUE-79191 (commit `dc900ea4e`, toga2-supply item-image + table polish): fixed the
|
|
622
|
+
**item image never rendering** — the Select Items / Update Info / Add-Serial tables hardcoded
|
|
623
|
+
`imageUrl={placeholderImage}` and never requested the image; now request the two `_underscore` Item
|
|
624
|
+
computed fields **`_imageUrl`** (`Items.imageId → Images.sourceUrl`) and **`_thumbnailImageUrl`**
|
|
625
|
+
(from `ItemImages` via `thumbnailImageId`, `isDefault DESC`, excluding `%Manufacturer%`) and render
|
|
626
|
+
`item._imageUrl || item._thumbnailImageUrl || placeholder` — documented the two-path Images/ItemImages
|
|
627
|
+
data model as a gotcha. Documented the **`ExpandableCellContent` fixed-char-count vs width** gotcha
|
|
628
|
+
(truncates at `columnDataLength` chars, not responsive; use `truncate max-w-[NNvw]` + native `title`
|
|
629
|
+
for width-responsive truncation, applied to the Description column). Added Reference 1/2 placeholder
|
|
630
|
+
hint text to the Edit Return Label modal (`RETURNLABELFIELDS.json`) to match Update Info
|
|
631
|
+
("e.g. NetSuite Sales Order #" / "…Purchase Order #") — cosmetic, Ref 1/2 semantics already recorded.
|
|
632
|
+
(mhammontree)
|
|
591
633
|
- 2026-07-21 — TRUE-79191 (toga2-supply UI fixes + Figma polish): documented three durable, reusable
|
|
592
634
|
gotchas — (1) **`BasicTable` header/value misalignment** (daisyUI base `:where(th,td)` ~16px padding;
|
|
593
635
|
always pass a horizontal `headerCellPadding` matching `cellPadding`, box-shadow-only seam for sticky
|
package/package.json
CHANGED