[Human App Frontend] Redesign Jobs Page - #3993
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
4 Skipped Deployments
|
There was a problem hiding this comment.
Pull request overview
Updates the Human App Frontend worker experience by redesigning the Jobs Discovery page and related worker flows (navigation, hCaptcha entrypoints, and supporting UI components/styles).
Changes:
- Reworks Jobs Discovery UI: adds hCaptcha widget header area and replaces oracle table with a card/list layout.
- Updates protected layout/navigation: simplifies mobile navbar usage and adds a desktop aside menu with “Available Jobs” / “My Jobs”.
- Refactors shared UI/styling: introduces a reusable copy-to-clipboard button, updates icons/assets, and adjusts palette/theme tokens.
Reviewed changes
Copilot reviewed 43 out of 49 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/apps/human-app/frontend/src/shared/styles/dark-theme.ts | Removes dark-only token usage; inlines a border color for MUI InputBase. |
| packages/apps/human-app/frontend/src/shared/styles/dark-color-palette.ts | Adds text.light; removes onlyDarkModeColor. |
| packages/apps/human-app/frontend/src/shared/styles/color-palette.ts | Adds text.light token to the base palette. |
| packages/apps/human-app/frontend/src/shared/i18n/en.json | Adds/updates worker navigation + jobs/oracles/hCaptcha widget strings and a “no records” string. |
| packages/apps/human-app/frontend/src/shared/hooks/use-is-hcaptcha-labeling-page.ts | Removes the useIsHCaptchaLabelingPage hook. |
| packages/apps/human-app/frontend/src/shared/hooks/index.ts | Stops exporting removed useIsHCaptchaLabelingPage. |
| packages/apps/human-app/frontend/src/shared/consts.ts | Tweaks mobile bottom tray height constant. |
| packages/apps/human-app/frontend/src/shared/components/ui/page-card/styles.ts | Simplifies page-card shared styles into a single commonStyles. |
| packages/apps/human-app/frontend/src/shared/components/ui/page-card/page-card.tsx | Switches root wrapper to Stack and applies new common styles. |
| packages/apps/human-app/frontend/src/shared/components/ui/page-card/page-card-loader.tsx | Aligns loader wrapper with new page-card styles and removes theme-branching. |
| packages/apps/human-app/frontend/src/shared/components/ui/page-card/page-card-error.tsx | Simplifies error UI (reload-only) and aligns with new styling. |
| packages/apps/human-app/frontend/src/shared/components/ui/no-records.tsx | Localizes “no records” text and updates spacing/color. |
| packages/apps/human-app/frontend/src/shared/components/ui/icons.tsx | Adds new icons (triangle/oracle/hCaptcha), updates CopyIcon rendering, removes old copy assets. |
| packages/apps/human-app/frontend/src/shared/components/ui/copy-to-clipboard-button.tsx | Adds shared copy-to-clipboard icon button with “Copied” tooltip. |
| packages/apps/human-app/frontend/src/shared/components/expiration-modal.tsx | Simplifies padding responsiveness using MUI breakpoint object syntax. |
| packages/apps/human-app/frontend/src/router/router.tsx | Removes stats drawer injection into ProtectedLayout. |
| packages/apps/human-app/frontend/src/router/router-paths.ts | Adds myJobs route path. |
| packages/apps/human-app/frontend/src/router/components/layout/protected/navbar.tsx | Simplifies navbar API and makes it always sticky. |
| packages/apps/human-app/frontend/src/router/components/layout/protected/layout.tsx | Simplifies protected layout; always renders GovernanceBanner and removes drawer/state logic. |
| packages/apps/human-app/frontend/src/router/components/layout/protected/desktop-aside-bar.tsx | Adds desktop aside navigation with active link styling. |
| packages/apps/human-app/frontend/src/router/components/index.ts | Stops exporting removed drawer-menu-items module. |
| packages/apps/human-app/frontend/src/router/components/drawer-menu-items/index.ts | Removes drawer-menu-items barrel export. |
| packages/apps/human-app/frontend/src/router/components/drawer-menu-items/drawer-menu-items-worker.tsx | Removes worker drawer menu item factory. |
| packages/apps/human-app/frontend/src/modules/worker/services/oracles.service.ts | Adds mocked oracle list and injects it into getOracles. |
| packages/apps/human-app/frontend/src/modules/worker/profile/views/profile.page.tsx | Replaces inline clipboard logic with shared CopyToClipboardButton. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/jobs-discovery.page.tsx | Rebuilds Jobs Discovery page layout; integrates hCaptcha widget and new oracle list. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/hooks/use-select-oracle-navigation.ts | Simplifies oracle selection navigation (removes hCaptcha special-case). |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/helpers/is-hcaptcha-oracle.ts | Removes hCaptcha-oracle address helper. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/helpers/is-hcaptcha-oracle.spec.ts | Removes tests for deleted helper. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/helpers/index.ts | Stops exporting deleted helper. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/oracles-table.tsx | Removes old oracles table implementation. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/oracles-list.tsx | Adds new list/grid rendering for oracle cards + loading/error/empty states. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/oracle-job-card.tsx | Adds oracle card UI (address/reward/job types) and CTA styling. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/index.ts | Exposes new OraclesList instead of OraclesTable. |
| packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/hcaptha-widget.tsx | Adds hCaptcha widget block with limit state + countdown and CTA to labeling/enable flows. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/hooks/enable-hcaptcha-labeling.ts | Minor formatting/cleanup. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/hcaptcha-labeling.page.tsx | Redesigns labeling page layout, adds breadcrumbs, integrates stats UI (accordion/drawer). |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/enable-labeler.page.tsx | Redesigns enable-labeler page layout and switches error handling to notifications. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/components/user-stats-drawer.tsx | Rebuilds stats drawer as a bottom sheet with close button. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/components/user-stats-details.tsx | Updates stats styling; replaces dark-only token usage with palette token. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/components/user-stats-accordion.tsx | Refines accordion behavior/state handling and updates sizing constants. |
| packages/apps/human-app/frontend/src/modules/worker/hcaptcha-labeling/components/breadcrumbs.tsx | Adds breadcrumb UI for hCaptcha labeling flow. |
| packages/apps/human-app/frontend/src/modules/signup/operator/views/add-stake.page.tsx | Replaces dark-only token usage with palette token. |
| packages/apps/human-app/frontend/src/assets/icons/triangle.svg | Adds triangle indicator icon asset. |
| packages/apps/human-app/frontend/src/assets/icons/hcaptcha.svg | Adds hCaptcha icon asset. |
| packages/apps/human-app/frontend/src/assets/icons/hcaptcha-disabled-icon.svg | Adds disabled hCaptcha icon asset (light). |
| packages/apps/human-app/frontend/src/assets/icons/content-copy.svg | Removes old copy icon asset (light). |
| packages/apps/human-app/frontend/src/assets/icons-dark-mode/hcaptcha-disabled-icon.svg | Adds disabled hCaptcha icon asset (dark). |
| packages/apps/human-app/frontend/src/assets/icons-dark-mode/content-copy.svg | Removes old copy icon asset (dark). |
Suppressed comments (1)
packages/apps/human-app/frontend/src/modules/worker/jobs-discovery/components/hcaptha-widget.tsx:229
alignItems: 'space-between'is not a valid CSS flex alignment value here either (it will be ignored). UsejustifyContent: 'space-between'if vertical spacing is intended.
<Stack
sx={{
alignItems: 'space-between',
maxWidth: { xs: '100%', md: '350px', lg: '450px' },
}}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
bd55e6d to
4c31b27
Compare
229649d to
dd6ec66
Compare
4c31b27 to
a11a88b
Compare
d620cb2 to
b96e350
Compare
| }; | ||
|
|
||
| async function getOracles(selectedJobTypes: string[]) { | ||
| // const H_CAPTCHA_ORACLE: Oracle = { |
There was a problem hiding this comment.
note: don't forget to put it to oracles array
|
|
||
| type TimeUnit = keyof typeof UNIT_LABEL_KEYS; | ||
|
|
||
| function getRemainingTime( |
There was a problem hiding this comment.
App already has date-fns with formatDistanceToNow, so maybe let's use it?
1e34938 to
2c19d06
Compare
2c19d06 to
7fdf178
Compare
Issue tracking
Part of #3996
Context behind the change
Reworks Jobs Discovery page and adds My Jobs page
How has this been tested?
locally with data from staging env
Release plan
regular
Potential risks; What to monitor; Rollback plan
not found