Skip to content

feat: ✨ add recyclability and repairability filters#823

Open
phoebus-84 wants to merge 16 commits intodtecfrom
main
Open

feat: ✨ add recyclability and repairability filters#823
phoebus-84 wants to merge 16 commits intodtecfrom
main

Conversation

@phoebus-84
Copy link
Copy Markdown
Collaborator

phoebus-84 and others added 16 commits February 4, 2026 10:00
Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
- Make 404 page public (accessible without login)
- Hide Contributors tab when not authenticated
- Hide user info sections (contributors, project by) for logged-out
users
- Skip GraphQL user queries when not authenticated
- Hide contributions count/button when 0
- Show DPP QR-code only for products with DPP metadata
- Fix BrBreadcrumb and GeneralCard license footer

Related to epic interfacer-gui-m4c
Closes: interfacer-gui-m4c.1, interfacer-gui-m4c.2,
interfacer-gui-m4c.3, interfacer-gui-m4c.4, interfacer-gui-m4c.5

---------

Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
Recyclability: numeric percentage (0-100%) with monotonic range tags
for stepped filtering via classifiedAs, same pattern as energy/CO2.

Repairability: binary toggle with single 'repairability-available' tag
in classifiedAs.

Both filters are wired through:
- Create flow (ProductFiltersStep)
- Edit flow (specs.tsx)
- Products sidebar filters (ProductsFilters)
- Active filters bar chips (ProductsActiveFiltersBar)
- Tag generation and normalization (tagging.ts, useProjectCRUD)

Closes interfacer-gui-zsv
- **feat: ✨ Epic 1 - Design System Foundation**
- **feat: ✨ Epic 2 - Navigation and Layout Redesign**
- **feat: ✨ Epic 3 - Catalog Pages (Designs, Products, Services)**
- **feat: ✨ redesign project detail page with new layout**
- **feat: ✨ Epic 5 - Profile Page Redesign with new layout and tabs**
- **feat: ✨ Epic 6 - Creation Forms Redesign with new design tokens**
- **chore: 🔧 close epics 7-9 in bd tracker**
- **feat: ✨ add creation form access from profile page (cxo.7)**
- **fix: 🐛 align catalog titles, stats & placeholders with prototype
(cxo.1, cxo.2, cxo.3)**
- **feat: ✨ add Show All dropdown to catalog toolbar (cxo.5)**
- **feat: ✨ add missing sidebar filters (cxo.4)**
- **feat: ✨ rename My list to Saved Lists, add Track Record nav item
(cxo.8)**
- **feat: ✨ enhance project cards with requires/nearby and based-on
links (cxo.6)**
- **feat: ✨ enhance detail page sidebar and add product passport section
(cxo.9)**
- Add /dpps/[id] route with SSG fallback and public access
- Header card: orange DPP icon, inline status badge, batch code,
  Share/Download PDF/overflow action buttons
- Collapsible 'What is a DPP?' explainer card with checkmarks
- Sticky sidebar with colored section navigation (desktop)
- Section cards with colored icon headers, title+subtitle, field grids
- Product detail DPP cards navigate to /dpps/{id}
- Profile DPP tab rows navigate to /dpps/{id} with keyboard support
- Fix useDppApi infinite re-render: bypass unstable useStorage refs,
  read localStorage directly in useCallback bodies

Closes: interfacer-gui-7yb.1, .2, .3, .4, .6, .7, .8, .9
)

- Layout.tsx: always render Topbar, remove authenticated gate
- Topbar: show nav links for all users, add sign-in/sign-up for guests
- NavigationMenu: add sign-in/sign-up CTA for unauthenticated users
- sign_in/sign_up: use standard Layout instead of NRULayout
- Topbar: Designs nav button links to /designs instead of /
- Topbar: active state uses exact path matching, no fallback
- NavigationMenu: Designs sidebar link updated to /designs
- Logo still links to / homepage
… backend (#838)

- **feat: ✨ wire totalCount into first hero stat card on catalog pages**
- **feat: ✨ wire sorting orderBy and distinctPrimaryAccountableCount
from backend**
- Add KPI counter cards (total/active/drafts/archived) with backend
facets
- Add status filter dropdown and expanded sort options
- Redesign table with Product ID, DPP ID, Batch/Unit, Status, Created
columns
- Add QR code download button and More Actions overflow menu
- Add pagination footer showing count of displayed DPPs
- Update API types for facets, search, sort params
- Wire frontend to new backend search/sort/facets/QR endpoints
…840)

## Summary
- remove owner-only edit banners from profile and project detail pages
while keeping inline edit actions
- fix search page filter composition to avoid sending mutually exclusive
fields name and orName
- fix profile tab search by wiring search input into the projects query
filter with debounce

## Commits
- refactor(ui): remove owner edit banners from profile and project
detail pages
- fix(search): avoid sending both name and orName filter params
- fix(profile): wire search input to GraphQL filter in profile tabs

## Testing
- manual verification of search page error path and profile tab search
behavior
… system classifiedAs (#841)

classifiedAs stores both user free-form tags and system-derived metadata
(machine-*, material-*, category-*, powercompat-*, env-*, etc.), forcing
display code to maintain drifting per-component blocklists to hide
system tags from users.

Introduce a dedicated TAG_PREFIX.USER = "tag" prefix applied
symmetrically on save and read:

- lib/tagging.ts: add userTag, isUserTag, stripUserTagPrefix,
isSystemTag, extractUserTagValues, normalizeUserTagsForSave helpers plus
SYSTEM_TAG_PREFIXES and LEGACY_SYSTEM_TAG_PATTERNS constants.
- Save sites (useProjectCRUD handleProjectCreation +
handleMachineCreation, resource claim) normalize user-entered tags to
tag-<slug>.
- URL filter producers (ProductsFilters, ProjectsFilters) prefix on
apply and strip on load so chips show "laser cut" instead of
"tag-laser-cut".
- Display sites (ProjectCardNew, ProjectDetailNew, GeneralCard,
ProjectsTableRow, ProductsActiveFiltersBar) route through
extractUserTagValues, removing bespoke blocklists (including stale mat:,
c:, pc:, env:, pwr:, rep:, m: entries).
- Legacy un-prefixed tags remain visible via backwards-compat fallback
in extractUserTagValues; no data migration required.

Closes interfacer-gui-i46.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant