Skip to content
Merged
Show file tree
Hide file tree
Changes from 93 commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
aaa4c9d
Add border to Order summary and remove bg
mirekm Dec 5, 2025
7ce12ba
Improve empty state for Payments summary card
mirekm Dec 5, 2025
5c1b09d
Match font size and add tabular nums to amounts
mirekm Dec 5, 2025
51ae25d
Fix buttons stacking on each other
mirekm Dec 5, 2025
7c2b4d6
Extract messages
mirekm Dec 5, 2025
d1f5263
Add changeset
mirekm Dec 5, 2025
3390702
Fix linting warning
mirekm Dec 5, 2025
5ba1c15
Fix "No applicable shipping methods" bug
mirekm Dec 8, 2025
2f242bf
Fix Edit Shipping Options modal to show unavailable method so user is…
mirekm Dec 8, 2025
7dcf708
Merge the old UNCONFIRMED and DRAFT order summary into the new design…
mirekm Dec 8, 2025
4de0c07
Eslint
mirekm Dec 8, 2025
8e09b06
More types
mirekm Dec 8, 2025
f25a05a
Extract messages
mirekm Dec 8, 2025
a7905f8
Add changeset
mirekm Dec 8, 2025
f90f52b
Fix imports placement
mirekm Dec 8, 2025
3a494ac
Merge branch 'improve-order-summary' into unify-order-value-sections
mirekm Dec 8, 2025
97dd348
Merge branch 'main' into unify-order-value-sections
mirekm Dec 8, 2025
c0d9104
Clean up the old unused Draft summary component
mirekm Dec 9, 2025
d7a0151
Unify the Draft header style and reuse OrderCardTitle component
mirekm Dec 9, 2025
4aae8de
Improve the Add products button showing disabled state
mirekm Dec 9, 2025
c77648c
Extract messages
mirekm Dec 9, 2025
b1c6b52
Improve the "Set shipping" logic and messages in Order Summary
mirekm Dec 9, 2025
f4d1ec1
Add tests to Order summary
mirekm Dec 9, 2025
f26dfd5
Extract messages
mirekm Dec 9, 2025
94b676f
Fix liniting errors
mirekm Dec 9, 2025
ee0aea1
Let users remove the selected shipping method in Drafts
mirekm Dec 9, 2025
b3feed7
Extract messages
mirekm Dec 9, 2025
3210bc1
Types
mirekm Dec 9, 2025
dd3ad2c
Add new unified OrderCaptureDialog with amount options
mirekm Dec 10, 2025
e334327
Add changeset
mirekm Dec 12, 2025
17546f5
Extract messages
mirekm Dec 12, 2025
71ac249
Fix Callout tests to respect ThemeProvider
mirekm Dec 12, 2025
86b7f7c
Add essential PriceField util tests
mirekm Dec 12, 2025
6bfcc7c
Add dialog tests
mirekm Dec 12, 2025
e2a82e4
Fix types
mirekm Dec 12, 2025
dddc58e
Merge branch 'main' into unify-order-value-sections
mirekm Dec 12, 2025
655723f
fix: add support for feature branches in testenvs (CI/CD)
NyanKiyoshi Dec 12, 2025
b1da70f
Merge branch 'main' into unify-order-value-sections
mirekm Dec 12, 2025
5f41731
Merge remote-tracking branch 'origin/fix/cicd/testenvs/support-featur…
mirekm Dec 13, 2025
5fe2a43
Merge branch 'unify-order-value-sections' into enable-granular-capture
mirekm Dec 13, 2025
810a191
Extract messages
mirekm Dec 13, 2025
7e64094
Don't ignore apollo errors
mirekm Dec 13, 2025
818bb5e
Remove the temp testing hack
mirekm Dec 13, 2025
0ed6529
Reset the dialog to the default option on open
mirekm Dec 13, 2025
43cb773
POC
mirekm Dec 13, 2025
ec4c2bc
Tests for empty state
mirekm Dec 14, 2025
3ee9d9b
Drop no-op function in favour of optional callback
mirekm Dec 14, 2025
301ace8
Update variable name
mirekm Dec 14, 2025
6178530
Emphasise the totals in the Summary section
mirekm Dec 15, 2025
00596a5
Add changeset
mirekm Dec 15, 2025
3f0e812
Extract messages
mirekm Dec 15, 2025
9eda3bf
Remove the unnecessary spread of props
mirekm Dec 15, 2025
482099b
Move discounts outside of the total lines as the dsicounts apply dire…
mirekm Dec 15, 2025
4851f22
Fix returned type
mirekm Dec 15, 2025
c1a5e6f
Improve ButtonLink and drop InlineLink
mirekm Dec 15, 2025
c4fe064
Simplify conditional rendering of shipping messages
mirekm Dec 15, 2025
feb3c07
Extract messages
mirekm Dec 15, 2025
245838f
Merge branch 'main' into unify-order-value-sections
mirekm Dec 15, 2025
fbe015a
When isClearable is true, selecting "No shipping method" is intention…
mirekm Dec 15, 2025
4fac6c6
Fix tests
mirekm Dec 15, 2025
f2c201d
Merge branch 'unify-order-value-sections' into enable-granular-capture
mirekm Dec 16, 2025
c0cf716
cleanup release workflow (#6193)
lkostrowski Dec 16, 2025
5f2e6a7
Fix customer->order filter redirection (#6213)
lkostrowski Dec 16, 2025
955f177
Release 3.22 (#6211) (#6212)
lkostrowski Dec 16, 2025
c6848f5
Update transactions (#6178)
mirekm Dec 16, 2025
7b32e85
Merge branch 'main' into unify-order-value-sections
mirekm Dec 16, 2025
9dd648e
Make messages for transaction action buttons reusable
mirekm Dec 16, 2025
fd03505
Let's use Box instead of custom CSS for PaymentsSummaryEmptyState com…
mirekm Dec 16, 2025
1de52c7
Improve the contract on Mark as Paid
mirekm Dec 16, 2025
28a013c
Improve the change description
mirekm Dec 16, 2025
25301a2
Remove the prior changelog files
mirekm Dec 17, 2025
70500a9
Render only when onMarkAsPaid is defined
mirekm Dec 17, 2025
ee30448
Improve changelog desc
mirekm Dec 17, 2025
bf5cd90
Refactor to use defaultZeroMoney constant for default money values
mirekm Dec 18, 2025
0a8d88f
Optimise transaction amount retrieval with useMemo
mirekm Dec 18, 2025
9536089
Add separate transaction-charge-action URL param; Fixed data refetch …
mirekm Dec 18, 2025
a78b453
Simplify the summary message
mirekm Dec 18, 2025
4966958
Merge branch 'unify-order-value-sections' into enable-granular-capture
mirekm Dec 18, 2025
111bca2
Merge branch 'main' into enable-granular-capture
mirekm Dec 18, 2025
e6677cd
Extract messages
mirekm Dec 18, 2025
e4186e9
Fix tests
mirekm Dec 18, 2025
60a9c5c
Rename messages to notifications
mirekm Dec 21, 2025
f308913
Fix i18n and consilidate common messages
mirekm Dec 21, 2025
865c657
Provide custom notification component/toast for sonner in headless mode
mirekm Dec 21, 2025
7bd3600
Memoize notify function
mirekm Dec 21, 2025
7d98687
Clamp long descriptions two two lines with ellipsis
mirekm Dec 25, 2025
5acd684
Refactor
mirekm Dec 25, 2025
39768bf
Clean up the debug panel for toast notifications (moved to separate PR)
mirekm Dec 25, 2025
976d577
Extract messages
mirekm Dec 25, 2025
6f18dc6
Merge branch 'main' into enable-granular-capture
mirekm Dec 25, 2025
a0ed632
Merge branch 'enable-granular-capture' into sonner-not-soon-enough
mirekm Dec 25, 2025
19113c2
Add test coverage for notifications
mirekm Dec 26, 2025
e5d670f
Improve changelog
mirekm Dec 26, 2025
9899877
Refactor to not use the default import
mirekm Jan 20, 2026
09fb305
Remove unused `show` method
mirekm Jan 20, 2026
e94f6db
Merge branch 'main' into sonner-not-soon-enough
mirekm Jan 20, 2026
b5a1d67
Fix tests
mirekm Jan 20, 2026
a9f0e7b
Drop changeset leftover after merge
mirekm Jan 21, 2026
6f31ddd
Merge branch 'main' into sonner-not-soon-enough
mirekm Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/mighty-toes-march.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"saleor-dashboard": patch
---

Introduce new, unified order capture dialog
12 changes: 12 additions & 0 deletions .changeset/whole-groups-happen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"saleor-dashboard": patch
---

Redesigned toast notifications for better user experience:

- **Notifications now stack compactly** instead of flooding the screen
- **Refined visual design** that's less disruptive and better aligned with the dashboard aesthetic
- **Long messages expand on hover** with "Show more/less" toggle instead of being truncated
- **Error notifications persist** until manually dismissed

**Next up:** Refining notification message copy for clarity and consistency across the dashboard.
123 changes: 107 additions & 16 deletions locale/defaultMessages.json
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,10 @@
"context": "column header",
"string": "Title"
},
"0YOedO": {
"context": "label for already charged amount",
"string": "Captured so far"
},
"0YjGFG": {
"context": "alert message",
"string": "For subscription"
Expand All @@ -446,6 +450,10 @@
"context": "ProductTypeDeleteWarningDialog multiple consent label",
"string": "Yes, I want to delete those products types and assigned products"
},
"0f6YvV": {
"context": "dialog title",
"string": "Capture Payment"
},
"0iMYc+": {
"context": "field is optional",
"string": "(Optional)"
Expand Down Expand Up @@ -1018,6 +1026,10 @@
"4YJHut": {
"string": "Clear search"
},
"4YyeCx": {
"context": "label for order total amount",
"string": "Order total"
},
"4Z0O2B": {
"context": "section header title",
"string": "Gift Card Timeline"
Expand Down Expand Up @@ -1608,6 +1620,10 @@
"context": "ordered product sku",
"string": "SKU"
},
"8JEG80": {
"context": "warning when authorized is less than total",
"string": "The remaining authorization doesn't cover the balance. {shortfall} will need a separate payment."
},
"8LWaFr": {
"context": "dialog content",
"string": "{counter,plural,one{Are you sure you want to unpublish this model?} other{Are you sure you want to unpublish {displayQuantity} models?}}"
Expand Down Expand Up @@ -2061,6 +2077,10 @@
"context": "no warehouses info",
"string": "There are no warehouses set up for this product. To add stock quantity to the product <a>configure a warehouse</a> or use existing one by clicking button below."
},
"BJRu4V": {
"context": "pill status for partially captured outcome",
"string": "Partially captured"
},
"BJtUQI": {
"context": "button",
"string": "Add"
Expand Down Expand Up @@ -2135,10 +2155,6 @@
"Bl6896": {
"string": "Refund amount"
},
"BnB/7Y": {
"context": "callout, title",
"string": "Info"
},
"Bphmwe": {
"context": "header",
"string": "Translation Collection \"{collectionName}\" - {languageCode}"
Expand Down Expand Up @@ -2847,6 +2863,10 @@
"context": "tooltip",
"string": "Checkout reservation time threshold is enabled in settings."
},
"G9y5Ze": {
"context": "pill status for fully captured outcome",
"string": "Fully captured"
},
"GA+Djy": {
"string": "Are you sure you want to delete these voucher codes?"
},
Expand Down Expand Up @@ -3037,6 +3057,10 @@
"context": "dialog content",
"string": "You are not able to modify this group members. Solve this problem to continue with request."
},
"H0eCbU": {
"context": "label for transaction authorized amount",
"string": "Transaction authorized"
},
"H1L1cc": {
"context": "url",
"string": "URL"
Expand Down Expand Up @@ -3102,6 +3126,10 @@
"context": "cta button label",
"string": "Get in touch"
},
"HSYM17": {
"context": "outcome prediction showing resulting order status after capture",
"string": "This will result in {status} order"
},
"HSmg1/": {
"context": "gift cards section name",
"string": "Gift Cards"
Expand Down Expand Up @@ -3175,6 +3203,10 @@
"HvJPcU": {
"string": "Category deleted"
},
"HwIhau": {
"context": "status pill for fully authorized payment",
"string": "Fully Authorized"
},
"HwTMFL": {
"string": "Go to channels"
},
Expand Down Expand Up @@ -3275,6 +3307,10 @@
"ITYiRy": {
"string": "Go to collections"
},
"IU1lif": {
"context": "radio option for custom capture amount",
"string": "Custom amount"
},
"IUWJKt": {
"context": "order was discounted event title",
"string": "Order was discounted"
Expand Down Expand Up @@ -3690,6 +3726,10 @@
"L87bp7": {
"string": "Order payment successfully voided"
},
"L8J/jr": {
"context": "status pill when order is fully paid",
"string": "Fully Captured"
},
"L8seEc": {
"string": "Subtotal"
},
Expand Down Expand Up @@ -3923,10 +3963,18 @@
"context": "customer input label",
"string": "Customer"
},
"MhlYkx": {
"context": "label for available authorization amount",
"string": "Available to capture (authorized)"
},
"MjUyhA": {
"context": "section subheader",
"string": "Active member since {date}"
},
"Mm/Stj": {
"context": "hint showing maximum allowed custom amount",
"string": "Max: {amount}"
},
"MmGlkp": {
"context": "dialog header",
"string": "Unassign Collections From Voucher"
Expand Down Expand Up @@ -4211,6 +4259,10 @@
"context": "tab name",
"string": "All staff members"
},
"OUMqG1": {
"context": "label for remaining balance to capture",
"string": "Remaining balance"
},
"OUX4LB": {
"context": "input label",
"string": "Model type"
Expand Down Expand Up @@ -4639,6 +4691,10 @@
"context": "add new refund button",
"string": "New refund"
},
"R/YHMH": {
"context": "label for amount already captured from this transaction",
"string": "Already captured"
},
"R4IIw1": {
"context": "tracking number of the shipment",
"string": "Tracking number"
Expand Down Expand Up @@ -4903,6 +4959,10 @@
"context": "product filter label",
"string": "Product"
},
"SnV3LR": {
"context": "error when no authorization exists",
"string": "No payment has been authorized for this order. The full amount of {amount} cannot be captured."
},
"SpngiS": {
"context": "sale status",
"string": "Status"
Expand Down Expand Up @@ -5100,6 +5160,10 @@
"context": "order expiration card description",
"string": "The time in days after expired orders will be deleted. Allowed range between 1 and 120."
},
"U0IK0G": {
"context": "label for authorized amount",
"string": "Authorized"
},
"U2DyeR": {
"string": "Are you sure you want to delete structure {menuName}?"
},
Expand Down Expand Up @@ -5187,10 +5251,6 @@
"context": "filters error messages unknown error",
"string": "Unknown error occurred"
},
"UUVUyy": {
"context": "callout, title",
"string": "Warning"
},
"UVDfTs": {
"context": "discount type shipping",
"string": "Shipping"
Expand Down Expand Up @@ -5749,6 +5809,10 @@
"context": "product pricing, section header",
"string": "Pricing"
},
"XrliJg": {
"context": "label for amount selection",
"string": "Select amount to capture:"
},
"Xsh2Pa": {
"context": "column picker search input placeholder",
"string": "Search for columns"
Expand Down Expand Up @@ -6051,6 +6115,10 @@
"context": "empty state message",
"string": "No refunds made for this order."
},
"ZUYQ+C": {
"context": "status pill for partial authorization",
"string": "Partial authorisation"
},
"ZXOpCJ": {
"string": "An unexpected issue occurred when parsing manifest. Please contact support. ({errorCode})"
},
Expand Down Expand Up @@ -6381,6 +6449,10 @@
"context": "button",
"string": "Create permission group"
},
"bRXgSC": {
"context": "capture button with amount",
"string": "Capture {amount}"
},
"bS7A8u": {
"context": "add tracking button",
"string": "Add tracking"
Expand Down Expand Up @@ -7566,6 +7638,10 @@
"context": "product price",
"string": "Select channel"
},
"jhyt3I": {
"context": "label for max capturable amount when partial authorization",
"string": "Remaining max (authorized)"
},
"jiXbx5": {
"context": "fulfillment status canceled",
"string": "Canceled"
Expand Down Expand Up @@ -8103,6 +8179,10 @@
"mvVmbJ": {
"string": "Install extension from manifest"
},
"mxGY7T": {
"context": "status pill for no authorization",
"string": "No Authorization"
},
"mxtAFx": {
"string": "Are you sure you want to delete draft #{orderNumber}?"
},
Expand Down Expand Up @@ -8732,6 +8812,10 @@
"context": "bulk delete label",
"string": "Delete"
},
"qlfssi": {
"context": "label for remaining amount customer owes",
"string": "Balance due"
},
"qov29K": {
"context": "dialog content",
"string": "Select one of customer addresses or add a new address:"
Expand Down Expand Up @@ -8933,10 +9017,6 @@
"context": "search label",
"string": "Search products"
},
"s8FlDW": {
"context": "hide error log label in notification",
"string": "Hide log"
},
"s9sOcC": {
"context": "button",
"string": "OK"
Expand Down Expand Up @@ -9106,6 +9186,10 @@
"tR+UuE": {
"string": "User doesn't exist. Please check your email in URL"
},
"tS2K/N": {
"context": "radio option for capturing order total",
"string": "Order total"
},
"tTuCYj": {
"context": "all gift cards label",
"string": "All Gift Cards"
Expand Down Expand Up @@ -9225,6 +9309,10 @@
"context": "shipping zones configuration",
"string": "Change default weight unit"
},
"u7ShY+": {
"context": "pill status for overcaptured outcome",
"string": "Overcaptured"
},
"u9/vj9": {
"context": "webhook input label",
"string": "Target URL"
Expand Down Expand Up @@ -9408,6 +9496,10 @@
"v3WWK+": {
"string": "Status is invalid"
},
"v8e93p": {
"context": "hint for order total option",
"string": "Matches what customer owes"
},
"v9D1pm": {
"context": "automatic completion cut-off date info message",
"string": "Setting a cut-off date will not stop checkouts that are already in the process of being completed."
Expand Down Expand Up @@ -9622,10 +9714,6 @@
"w7jT4W": {
"string": "No channels selected"
},
"w9xgN9": {
"context": "see error log label in notification",
"string": "See error log"
},
"wAGThK": {
"context": "dialog header",
"string": "Delete structures"
Expand Down Expand Up @@ -9689,6 +9777,9 @@
"wbsq7O": {
"string": "Usage"
},
"we4Lby": {
"string": "Info"
},
"werrDz": {
"context": "refunded event title",
"string": "Products were refunded"
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@
"react-sortable-hoc": "^1.11.0",
"react-transition-group": "4.4.5",
"slugify": "^1.6.6",
"sonner": "^2.0.7",
"tslib": "^2.8.1",
"url-join": "^4.0.1",
"use-react-router": "^1.0.7",
Expand Down
Loading