Releases: rdeneau/shopfoo
Releases · rdeneau/shopfoo
v1.4.1
v1.4.0
1.4.0 (2026-03-12)
Features
- 💄 improve about page disclaimer (a842c07)
- 🖼️ add favicon.png (e242f21)
- Actions: 🖼️ place "Last sale" before "Last purchase" (1b8b44e)
Bug Fixes
- ⛓️💥 error 404 on Azure (333776f)
- 🐛 "Highlight matches" toggle should apply to bazaar category, book author/tag filters (0375ba4)
- 🐛 apply front-end search on OpenLib book search results to display the exact count (N found, P displayed) (30f7373)
- 🐛 disable "Search Books on Open Library" for Bazaar products (60d9079)
- 🐛 reset search term and sort when switching providers (648c9b7)
- 🧪 failing Filters test (to be confirmed) (cae1219)
- ManagePrice: 🐛 properly prevent price decrease in case of Increase, and vice versa (a318857)
v1.3.0
1.3.0 (2026-03-12)
Features
- ✨ add Shopfoo.Data project (20f98d3)
- ✨ add book from the Index page after a "search more" on Open Library (b636e1e)
- ✨ add Error.Errors case and Result.zip (a110d55)
- ✨ add Receive Purchased Products drawer (8d40910)
- ✨ Add ReceiveSupply types and API contract (4772702)
- ✨ add ReceiveSupply workflow with validation (41079e6)
- ✨ display purchase prices with margin (b5de1db)
- ✨ display sales stats; input sales (4b6da71)
- ✨ edit book authors (w/o creation) (82c3fb1)
- ✨ edit book subtitle (3b34445)
- ✨ edit book tags (w/o creation) (2c7281d)
- 👔 add book with empty prices and valid SKU-ISBN (960dc52)
- 👔 detect and report DuplicateKey during AddPrices (8109594)
- 👔 display provider cards in product index page when no provider is selected (71499fc)
- 👔 filter books by tags, add SKU & BookTags columns, extend search (b74a324)
- 👔 support custom LogLevel in WorkLogger (c66aab3)
- 👔 use retail price (if any) as the default prices for sales to input (7bfa062)
- 👔 wire ReceiveSupply server handler (d4cbd17)
- 🖼️ add Checkbox and MultiSelect components (779955e)
- 🖼️ add count indicators in the filter tab (0628b7f)
- 🖼️ display last purchase price in an ActionsDropdown component (bb9fd42)
- 🖼️ edit bazaar category (16b346d)
- 🖼️ finalize Admin page: add translations, improve alerts (7ea6252)
- 🖼️ improve "not found" error display relative to type name (31a301f)
- 🖼️ improve bazaar category (location, styles) (d265086)
- 🖼️ improve display relative to product category: books or bazaar (977de9d)
- 🖼️ show active provider tab (a9ae587)
- 🖼️ sort provider cards by text (lang sensitive) (6da4e76)
- 🚸 Add toast notification on receive supply save (902e66a)
- AddProduct: 🧪 indicate products already there with the new DuplicateKey DataError (b027071)
- Admin: ✨ reset all caches + refactor Persona DU (cd872f5)
- CatalogInfo: ✨ search book authors on Open Library in the MultiSelect dropdown (276436f)
- CatalogInfo: 🖼️ display book author cover in the MultiSelect dropdown content (6a0e00a)
- Effects: 👔 improve Interpreter (12acd52)
- Filters: ✨ search options: match case, highlight matches (4af5c20)
- FullContext: ✨ add UnitTestSession to ease unit tests (mock api, ignore cmd) (999dbc8)
- MultiSelect: ✨ add "search more button" = "Add tag" for Books Tags (43b95ee)
- MultiSelect: ✨ add "search more button" = "Add tag" for Books Tags (32019d3)
- MultiSelect: 🖼️ improve the search box, esp. moved to the dropdown content (80953bd)
- Product: 👔 support saga (instructions undo) (fa7394a)
- Program: ✨ run workflows in a saga, undoing previously executed commands (1aa2765)
- Saga: ✨ add undo criteria (959b032)
- Saga: ✨ cancel workflow (afff5bc)
- SaveButton: ✨ print error message as warning in the JS console (c36a9b6)
- SearchBox: 🖼️ have "Search or add" placeholder when search more feat is activated (789d986)
- Toast: 🖼️ add Dismiss prop (Auto or Manual) (82e9bec)
Bug Fixes
- 🐛 adjust IndexTable (ed440e1)
- 🐛 define SKU as a record to overcome JSON serialization issue on the Fable.Remoting side (63a0b76)
- 🐛 encode Token with Persona, fix missing claims check (03868df)
- 🐛 propagate lang change to the product pages (b3a1d6a)
- 🐛 support book w/o covers (970baae)
- 🐛 support no prices, no sales, no stock events in workflows (460a785)
- 🐛 use div with key instead of fragment to avoid dreaded React error (8e39c57)
- 🐛 use Uri.Relative in Data Clients (8380634)
- 🔒️ encrypt tokens (39b0093)
- Action/MarkAsSoldOut: 🐛 always trigger setSoldOut to apply the "SOLD-OUT" ribbon effect (9fd08f5)
- Actions: 🐛 setSoldOut in an effect to avoid React errors (8c8a744)
- Checkbox: 🐛 label should not be focusable for better a11y / keyboard xp (3e19310)
- errorDetail: 🐛 format manually the exception, fix missing keys (7afeffa)
- MultiSelect: 🐛 after search, "select all" means all visible items (4a61fab)
- MultiSelect: 🐛 after search, only show matches or selected items (3365bba)
- MultiSelect: 🐛clear button should not close the dropdown menu (432788e)
- MultiSelect: 🖼️ focus the search input on dropdown menu opening (c2058c0)
- Product/Guard: 💄 properly set PropertyName and EntityName (3b0ad26)
- ProductsTable: 🐛 fix condition to detect book subtitle ([bfac3e6](bfac3e6701833eceba920ab91cfc...
v1.2.0
v1.1.0
1.1.0 (2025-12-24)
Features
- ✨ add commits.html for the GitHub page to embed in the Status page (3782a2a)
- ✨ implement "define list/retail price" using ManagePriceFrom (previously ModifyPrice) (abef0cf)
- ✨ implement "mark as sold-out" (missing checking stock = 0) (a717e27)
- ✨ implement "remove list price" (a10e5b6)
- 🖼️ display a "sold-out" ribbon on the product image (6a7082b)
- 🖼️ handle broken image url (at the UI level only) (65f10f6)
- 🖼️ highlight selected menu (e385825)
- 🖼️ improve product image rendering when broken or sold-out (dd3df7c)
- 🖼️ use fontawesome: login, user icon (fe5b6a3)
- 🖼️ use fontawesome: navbar (bbb6338)
- 🖼️ use fontawesome: product details (03d5dff)
v1.0.0
1.0.0 (2025-12-20)
Features
- 👔 translate Product/Actions (f41d884)
- ♻️ revamp Errors: -HttpApi, -Validation, +Guard, +Category (c02927f)
- ✨ add Core/Shopfoo.Effects (eb47aa4)
- ✨ add Login and FullContext (🚧 ReactContext ✖️) (d124c0b)
- ✨ add product image (7ce1e5d)
- ✨ add products (f99b6d6)
- ✨ add the "not found" page (ba95a70)
- ✨ display product details (db706a9)
- ✨ display real retail prices, in € or $ with the symbol position (right vs left) (4d4dbcc)
- ✨ improve Common project (iso SCM) (70336ee)
- ✨ increase/decrease prices, open/close drawer (73a97d1)
- ✨ save product (95476d3)
- 🏗️ add Server build target (2efc00c)
- 🏗️ add simple console logger (b814935)
- 👔 add Admin page to test the user access (b0f1bbc)
- 👔 after login, navigate to product/index only from the Login page (5c18b9d)
- 👔 validation product in SaveProduct workflow (b63d926)
- 🔐 check access to product actions (87361e5)
- 🔐 check access to Product pages, redirecting to NotFound when needed (c74f9b4)
- 🔐 check product edit access (96f67a1)
- 🖼️ add 4 themes, display preview badges (71de84f)
- 🖼️ add Alert.apiError to display details for Admins (867826b)
- 🖼️ add theme changer in the nav bar (6704db9)
- 🖼️ display toast after lang changed (aef0b6c)
- 🖼️ handle product not found nicely (1eee2cc)
- 🖼️ improve LangDropdown (7ec18a2)
- 🖼️ improve theme preview, ⚡ add fast build commands (887a929)
- 🖼️ light theme (079f5b8)
- 🖼️ replace page title with the breadcrumb inside the app-navbar (0b1b718)
- 🖼️ revamp Login page: display user claims in a table (bff952e)
- 🖼️ setup UI (🚧 no behaviors) (c329945)
- 🖼️ translate ThemeDropdown (fd317ec)
- 🖼️ use breadcrumb as page title (2095524)
- 🖼️ use emoji and persona wording (instead of demo user) (7a8dfa8)
- 🖼️ validate catalog info on the client side (42116cb)
- about: ✨ add badges with package info (a68765f)
- Errors: ✨ add Validation, improve Guard (1b49641)
- implement GetAllowedTranslations, GetProducts (c01b1ef)
Bug Fixes
- 🐛 display "Shopfoo > Products" properly in the AppNav (instead of just "Shopfoo") (1d02288)
- 🐚 replace remaining SAFEr (from the template) to Shopfoo (app name) (0883fee)
- 🐛 add missing React keys, fix change lang (f0faaee)
- 🐛 clear the Toast once hidden (b0c96db)
- 🐛 delay the nav to Login in About w/o translations, to avoid React error (73fa23f)
- 🐛 really save the product (0415993)
- 🐛 refresh saved prices, ✨ cancellable closing countdown (e8ec58d)
- 🐛 remove the focus to fix the menu hiding on mouse out (415f5c3)
- ci: 🏗️ fix update-release-date (9672d23)
- View: 🐛 separate pageToDisplayInline from access check (2b20619)