Skip to content
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
a045d9b
gql types
lkostrowski Jan 27, 2026
587446a
UI for problems
lkostrowski Jan 27, 2026
7ec2ffe
iteration of ui
lkostrowski Jan 27, 2026
7adfaf3
iteration of ui - better collapse
lkostrowski Jan 27, 2026
805e2a2
UI increments
lkostrowski Jan 27, 2026
3f55c23
fix grouping
lkostrowski Jan 27, 2026
0511c12
refresh types
lkostrowski Jan 29, 2026
e635907
refresh ui
lkostrowski Jan 29, 2026
bae7e00
Final ui
lkostrowski Jan 29, 2026
dfe68b8
link fixes
lkostrowski Jan 29, 2026
e0e4f99
Update schema
lkostrowski Jan 30, 2026
8c13b5b
fix types
lkostrowski Jan 30, 2026
2e63600
Clearing problems
lkostrowski Jan 30, 2026
b8876de
better message
lkostrowski Feb 3, 2026
da97034
Merge branch 'main' into app-problems
lkostrowski Feb 3, 2026
f09d4bb
update schema
lkostrowski Feb 3, 2026
1d652e4
apply new api
lkostrowski Feb 3, 2026
d30fc9e
update ui
lkostrowski Feb 3, 2026
3b92924
ui fixes
lkostrowski Feb 3, 2026
11227ce
ai fixes
lkostrowski Feb 3, 2026
27acea8
dismissed by
lkostrowski Feb 3, 2026
40d64e8
Replace "Show More" expand with popup dialog for problems list
lkostrowski Feb 3, 2026
0d9c224
hide action if not needed
lkostrowski Feb 3, 2026
b45f56e
Merge branch 'main' into app-problems
lkostrowski Feb 3, 2026
0b9f34e
hide problems if no active
lkostrowski Feb 4, 2026
ca5b220
update schema
lkostrowski Feb 5, 2026
04ced51
better copy
lkostrowski Feb 5, 2026
952a7c8
update schema
lkostrowski Feb 10, 2026
9d3e760
update codebase
lkostrowski Feb 10, 2026
bf4ff20
update schema
lkostrowski Feb 18, 2026
2905850
messages
lkostrowski Feb 18, 2026
a3afbd7
storybook
lkostrowski Feb 18, 2026
8be837e
Merge branch 'main' into app-problems
lkostrowski Feb 18, 2026
94ce553
review fixes
lkostrowski Feb 18, 2026
8e098bc
fix dismissal
lkostrowski Feb 18, 2026
ee25183
dont render dismiss for manual apps
lkostrowski Feb 18, 2026
36c726a
fix test
lkostrowski Feb 18, 2026
b4b0b5f
cr fixes
lkostrowski Feb 18, 2026
cc73e07
Update long-rugs-wash.md
lkostrowski Feb 18, 2026
6fc7394
Merge branch 'main' into app-problems
lkostrowski Feb 23, 2026
dd9d266
Address PR #6283 review comments
lkostrowski Feb 23, 2026
9d50e94
fixtures and tests
lkostrowski Feb 23, 2026
7607f69
Extract css
lkostrowski Feb 23, 2026
7ecfc45
better colors
lkostrowski Feb 23, 2026
9454cb8
better colors
lkostrowski Feb 23, 2026
c3cc602
refactor
lkostrowski Feb 23, 2026
575a503
fix pagination
lkostrowski Feb 23, 2026
f7c6717
change useAppsAlert
lkostrowski Feb 23, 2026
e968440
test for app alerts
lkostrowski Feb 23, 2026
6370c7b
fix tests
lkostrowski Feb 23, 2026
3793f0a
Merge branch 'main' into app-problems
lkostrowski Feb 23, 2026
7b51326
Merge branch 'main' into app-problems
lkostrowski Feb 23, 2026
587e242
Merge branch 'main' into app-problems
lkostrowski Feb 24, 2026
395eff5
Merge branch 'main' into app-problems
lkostrowski Feb 24, 2026
adc7993
Merge branch 'app-problems' of github.com:saleor/saleor-dashboard int…
lkostrowski Feb 24, 2026
86ef2af
update lint
lkostrowski Feb 24, 2026
c8e3102
Merge branch 'main' into app-problems
lkostrowski Feb 24, 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
9 changes: 9 additions & 0 deletions .changeset/long-rugs-wash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"saleor-dashboard": patch
---

Added app problems display to the installed extensions list. Each app now shows reported problems with severity badges, timestamps, and dismissal support. The "Open the app" action link is only shown for third-party apps. Requires Saleor 3.22+.

:::warning
This release *requires* Saleor core [`3.22.36`](https://github.com/saleor/saleor/releases/tag/3.22.36). Used with older version, Extensions page will break
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changeset warning states this release requires Saleor core 3.22.36, which is a very specific version. Consider whether this should be a minimum version requirement (>=3.22.36) rather than requiring an exact version, unless there's a specific reason for the exact version requirement. This could unnecessarily prevent users from upgrading to newer patch versions of Saleor.

Suggested change
This release *requires* Saleor core [`3.22.36`](https://github.com/saleor/saleor/releases/tag/3.22.36). Used with older version, Extensions page will break
This release *requires* Saleor core [`3.22.36`](https://github.com/saleor/saleor/releases/tag/3.22.36) or newer in the 3.22 series. Used with older versions, the Extensions page will break.

Copilot uses AI. Check for mistakes.
:::
19 changes: 11 additions & 8 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import "@saleor/macaw-ui-next/style";
import type { Preview } from "@storybook/react-vite";
import { IntlProvider } from "react-intl";
import { MemoryRouter } from "react-router-dom";
import { LocaleContext } from "../src/components/Locale/Locale";
import { apolloClient } from "../src/graphql/client";
import "../src/index.css";
import { ThemeProvider } from "../src/theme";
Expand All @@ -14,14 +15,16 @@ const preview: Preview = {
Story => (
<ApolloProvider client={apolloClient}>
<MemoryRouter>
<IntlProvider locale="en" onError={() => {}}>
{/* @ts-expect-error legacy types */}
<LegacyThemeProvider overrides={themeOverrides} palettes={paletteOverrides}>
<ThemeProvider>
<Story />
</ThemeProvider>
</LegacyThemeProvider>
</IntlProvider>
<LocaleContext.Provider value={{ locale: "en" as any, setLocale: () => {} }}>
<IntlProvider locale="en" onError={() => {}}>
{/* @ts-expect-error legacy types */}
<LegacyThemeProvider overrides={themeOverrides} palettes={paletteOverrides}>
<ThemeProvider>
<Story />
</ThemeProvider>
</LegacyThemeProvider>
</IntlProvider>
</LocaleContext.Provider>
</MemoryRouter>
</ApolloProvider>
),
Expand Down
100 changes: 100 additions & 0 deletions locale/defaultMessages.json
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,10 @@
"/zFGgP": {
"string": "+{count} more"
},
"0+sGhF": {
"context": "Suffix for show-more button when hidden problems include active ones",
"string": ", including {active} active"
},
"0+zatS": {
"string": "Hello {userName}, welcome to your Store Dashboard"
},
Expand Down Expand Up @@ -1271,6 +1275,10 @@
"5SPHkk": {
"string": "Order #{orderId} was fully paid"
},
"5SdrZT": {
"context": "Badge label for problems reported by the app itself",
"string": "App"
},
"5ShHx2": {
"context": "tooltip for disabled buttons",
"string": "You don't have permission to manage extensions"
Expand Down Expand Up @@ -1543,6 +1551,10 @@
"context": "deactivate app billing info",
"string": "You will be still billed for the extension."
},
"71NpbR": {
"context": "Label shown on dismissed problems",
"string": "Dismissed"
},
"720c51": {
"context": "tax classes name input placeholder",
"string": "Tax rate name"
Expand Down Expand Up @@ -3929,6 +3941,10 @@
"KHZlmi": {
"string": "Discount Type"
},
"KJPsls": {
"context": "Tooltip line showing UTC timestamp of a problem event",
"string": "UTC: {time}"
},
"KMxiiF": {
"context": "button",
"string": "Retry"
Expand Down Expand Up @@ -4215,6 +4231,10 @@
"context": "Placeholder for date picker",
"string": "dd/mm/yyyy, --:--"
},
"MFirbo": {
"context": "Button label to dismiss all problems for an app",
"string": "Dismiss all problems raised by the app"
},
"MH1qA1": {
"string": "Test Action"
},
Expand Down Expand Up @@ -4720,6 +4740,10 @@
"OtMtzH": {
"string": "Product unavailable in collection channels"
},
"OutAI7": {
"context": "Label prefix for the last occurrence date of a recurring problem",
"string": "last occurred at"
},
"Oy1LhB": {
"context": "button error state label",
"string": "Try again"
Expand Down Expand Up @@ -5138,6 +5162,10 @@
"R4gIJc": {
"string": "Search by model name..."
},
"R5r0+F": {
"context": "Badge label showing total number of app problems",
"string": "{count, plural, one {{count} problem} other {{count} problems}}"
},
"R8+DNv": {
"context": "section title",
"string": "Webhook emission"
Expand Down Expand Up @@ -5395,6 +5423,10 @@
"context": "attribute is filterable in storefront",
"string": "Filterable in storefront"
},
"SW4GYL": {
"context": "Button label to dismiss a single app problem",
"string": "Dismiss"
},
"SZH0fw": {
"context": "set variant as default, button",
"string": "Set as default"
Expand Down Expand Up @@ -5966,6 +5998,10 @@
"context": "column category descriptor",
"string": "Channels"
},
"W/Qs4m": {
"context": "Button label to expand and show additional hidden problems",
"string": "Show {count} more {count, plural, one {problem} other {problems}}"
},
"W/lDQA": {
"string": "Model type deleted"
},
Expand Down Expand Up @@ -6045,6 +6081,10 @@
"WMNtD2": {
"string": "The extension will have access to new permissions. From now on it will be able to use them to perform operations these permissions allow. You should ensure you trust the extension before you approve."
},
"WPKADj": {
"context": "Badge label for critical severity problems",
"string": "Critical"
},
"WQMTKI": {
"context": "list of warehouses",
"string": "Warehouses A to Z"
Expand Down Expand Up @@ -6440,6 +6480,10 @@
"context": "product field",
"string": "Description"
},
"YVsbL4": {
"context": "Tooltip showing which user dismissed a problem",
"string": "Dismissed by {email}"
},
"YXhaCZ": {
"string": "Assign Product Types"
},
Expand Down Expand Up @@ -6776,6 +6820,10 @@
"context": "select warehouse to restock items",
"string": "Select Warehouse"
},
"aHoX+i": {
"context": "Tooltip indicating a problem was dismissed by the app itself",
"string": "Dismissed by app"
},
"aI80kg": {
"string": "Properties"
},
Expand Down Expand Up @@ -7322,6 +7370,10 @@
"context": "checkbox",
"string": "Grant refund for returned items"
},
"d3jlO3": {
"context": "Label prefix for the creation date of a recurring problem",
"string": "Started at"
},
"d68yq7": {
"string": "Delete gift cards"
},
Expand Down Expand Up @@ -8006,6 +8058,10 @@
"hh0xW7": {
"string": "Channel Name"
},
"hhXK05": {
"context": "Link label to navigate to the app page",
"string": "Open the app"
},
"hjEkEH": {
"string": "All webhooks registered by this extension. In case of failed webhook delivery, list of attempts is displayed."
},
Expand Down Expand Up @@ -8490,6 +8546,10 @@
"context": "info when addresses search is unsuccessful",
"string": "No results found"
},
"kRnxj2": {
"context": "Suffix for show-more button when hidden problems include both active and critical",
"string": ", including {active} active and {critical} critical"
},
"kS5Qgk": {
"context": "used by label",
"string": "Used by"
Expand Down Expand Up @@ -8551,6 +8611,10 @@
"kgVqk1": {
"string": "Category name"
},
"ki2FY7": {
"context": "Badge label for webhook delivery error problems",
"string": "Webhook delivery"
},
"ki7Mr8": {
"context": "product export to csv file, header",
"string": "Export Settings"
Expand Down Expand Up @@ -8686,6 +8750,10 @@
"context": "selectt all options",
"string": "Select All"
},
"lQofIt": {
"context": "Full badge label with optional critical count suffix",
"string": "{count, plural, one {{count} problem} other {{count} problems}}{hasCritical, select, true {, including {criticalCount} critical} other {}}"
},
"lSOmbK": {
"context": "fulfillment status fulfilled",
"string": "Fulfilled"
Expand Down Expand Up @@ -8810,6 +8878,10 @@
"m9Q2yf": {
"string": "Plugin settings updated"
},
"m9ndUn": {
"context": "Link label to navigate to webhook settings for an app",
"string": "Check webhooks"
},
"mCP0UD": {
"context": "order draft creation date",
"string": "Date"
Expand Down Expand Up @@ -9491,6 +9563,10 @@
"qGwKT/": {
"string": "Extension disabled. Activate the extension from the settings."
},
"qIVtUd": {
"context": "Modal header showing total problem count for an app",
"string": "All problems ({count})"
},
"qJedl0": {
"context": "product label",
"string": "Published"
Expand Down Expand Up @@ -9555,6 +9631,10 @@
"context": "order line total price",
"string": "Total"
},
"qVT7rt": {
"context": "Badge label showing number of errors",
"string": "{count, plural, one {{count} error} other {{count} errors}}"
},
"qYukJi": {
"context": "Status when product is partially configured",
"string": "Scheduled"
Expand Down Expand Up @@ -9862,6 +9942,10 @@
"context": "gift cards page subheader",
"string": "Learn more about {giftCards}"
},
"sQMS4n": {
"context": "Tooltip for the dismiss problem button",
"string": "Force clear this error. Use if you know what you are doing"
},
"sR0urA": {
"context": "dialog content",
"string": "Are you sure you want to delete {name}?"
Expand Down Expand Up @@ -10488,6 +10572,10 @@
"vaFjs6": {
"string": "No warehouses available to add"
},
"vazr6V": {
"context": "Button label to open the full problems modal for an app",
"string": "Open app problems"
},
"vbop3G": {
"string": "Create new model"
},
Expand Down Expand Up @@ -10690,6 +10778,10 @@
"context": "note on currency",
"string": "Note: Only channels with matching currency are available."
},
"wabGCe": {
"context": "Tooltip line showing local timestamp of a problem event",
"string": "Local: {time}"
},
"wbsq7O": {
"string": "Usage"
},
Expand Down Expand Up @@ -10902,6 +10994,10 @@
"y/UWBR": {
"string": "There is no address to show for this customer"
},
"y/vChh": {
"context": "Suffix appended to problem count when critical problems exist",
"string": "including {count} critical"
},
"y08GTW": {
"string": "Channel is required"
},
Expand Down Expand Up @@ -10982,6 +11078,10 @@
"context": "extensions page subheader",
"string": "Learn more about {extensions}"
},
"ygPAC7": {
"context": "Tooltip explaining the app-reported problem badge",
"string": "This message comes from the app"
},
"ygxco/": {
"context": "tooltip, submit form",
"string": "Client has made more than one transaction. You have to send refund manually."
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"extract-messages": "formatjs extract 'src/**/*.{ts,tsx}' --ignore '**/*.d.ts' --out-file locale/defaultMessages.json --format scripts/formatter.cjs",
"fetch-local-schema": "node scripts/fetch-local-schema.cjs",
"fetch-schema": "pnpm run fetch-schema:main && pnpm run fetch-schema:staging",
"fetch-schema:main": "curl https://raw.githubusercontent.com/saleor/saleor/${npm_package_config_saleor_schemaVersion}/saleor/graphql/schema.graphql > schema-main.graphql && cp schema-main.graphql schema.graphql",
"fetch-schema:main": "curl https://raw.githubusercontent.com/saleor/saleor/${npm_package_config_saleor_schemaVersion}/saleor/graphql/schema.graphql > schema-main.graphql",
"fetch-schema:staging": "curl https://raw.githubusercontent.com/saleor/saleor/main/saleor/graphql/schema.graphql > schema-staging.graphql",
"format:check": "prettier --check .",
"generate": "pnpm run generate:main && pnpm run generate:staging",
Expand Down
Loading
Loading