-
Notifications
You must be signed in to change notification settings - Fork 8
fix(sno-show-ops-only-flagged-node): done #88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
🎨 Chromatic Visual Testing Results
Check the visual changes and approve or request changes as needed. |
5217ddb to
75e044e
Compare
🎨 Chromatic Visual Testing Results
Check the visual changes and approve or request changes as needed. |
🎨 Chromatic Visual Testing Results
Check the visual changes and approve or request changes as needed. |
snomiao
added a commit
that referenced
this pull request
May 27, 2025
* fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes
christian-byrne
added a commit
that referenced
this pull request
May 31, 2025
* fix issue 26 back button does not work properly (#31) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(search-result): history navigating history navigating * fix(Search): remove duplicated meta info remove duplicated meta info * fix(26-back-button-does-not-work-properly): remove console remove console * format: prettier * fix(26-back-button-does-not-work-properly): rum pnpm format-fix rum pnpm format-fix * fix(registry): try make sth needs to format try make sth needs to format * format: Apply prettier --fix changes --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * Sno feat node delete button (#36) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(sno-feat-node-delete-button): del del * fix(nodes): onclose onclose * fix(sno-feat-node-delete-button): done done * fix(AuthUI): remove console remove console * fix(nodes): nodedetails solve conflict nodedetails solve conflict * fix(message): says node deleted says node deleted * fix(node-delete): go to /nodes after deletion success go to /nodes after deletion success --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * Fix auth main (#32) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(fix-authmain): render spinner while loading user p render spinner while loading user permission * fix(AuthUI): remove console log remove console log --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * refactor(NodeDetails.tsx): rename data variable to node for clarity and consistency in the component (#39) fix(NodeDetails.tsx): handle loading and error states correctly by checking node instead of data * fix(sno-admin-redir): Show 403 when admin HOC is redirecting (#42) * fix(sno-admin-redir): Show 403 when user === undefined Show 403 when user === undefined * docs(authAdmin): explain the return explain the return * feat(NodeDetails): Unclaimed node style (#40) * refactor(NodeDetails.tsx): rename data variable to node for clarity and consistency in the component fix(NodeDetails.tsx): handle loading and error states correctly by checking node instead of data * feat(NodeDetails): enhance node details display with unclaimed node handling and improve code readability feat(constants): add UNCLAIMED_ADMIN_PUBLISHER_ID constant for better management of unclaimed nodes style(globals.css): add hidden class utility to manage visibility of elements * Update src/constants.ts Co-authored-by: Robin Huang <[email protected]> * fix(sno-unclaimed-nodes-style): update hidden update hidden --------- Co-authored-by: Robin Huang <[email protected]> * Bump axios from 1.6.8 to 1.8.2 (#44) Bumps [axios](https://github.com/axios/axios) from 1.6.8 to 1.8.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.6.8...v1.8.2) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Sno allow admin edit (#46) * feat(sno-allow-admin-edit): allow admin edit allow admin edit * fix(sno-allow-admin-edit): warning for admin edit warning for admin edit * format: Apply prettier --fix changes * fix(sno-allow-admin-edit): replace force into admin word replace force into admin word * feat: show publisher id under node name (#53) * fix(nodes): note: publisherId can be undefined note: publisherId can be undefined when accessing * fix(nodes): show publisher id show publisher id * fix(sno-list-nodes-for-publisher): list nodes in publisher page (#54) * fix(sno-list-nodes-for-publisher): list nodes in publisher page list nodes in publisher page * format: Apply prettier --fix changes * feat: allow pagination in publisher's node list (#55) * docs(sno-list-nodes-api-update): orval hightlight as sh orval hightlight as sh * fix(sno-list-nodes-api-update): update api to prod latest update api to prod latest * fix(sno-list-nodes-api-update): use pagination use pagination * fix(sno-list-nodes-api-update): page offset from 1 page offset from 1 * format: Apply prettier --fix changes * fix(sno-list-nodes-api-update): use 12 as limit use 12 as limit * fix(sno-list-nodes-api-update): render total render total * format: Apply prettier --fix changes * fix(sno-list-nodes-api-update): use nodeid as key in array map fn use nodeid as key in array map fn * Run npx -y orval regularly (#52) * fix(sno-api-gen): run npx -y orval run npx -y orval * fix(sno-api-gen): setup action setup action * fix(sno-api-gen): format format * fix(sno-api-gen): update api to latest update api to latest * chore: upgrade nextjs to latest (#51) * chore(sno-type-module): upgrade to latest standard esmodule upgrade to latest standard esmodule * fix(sno-type-module): to next 15 to next 15 * fix(nextconfig): use typescript use typescript * fix(nextjs): mdx mdx * fix: transpile @algolia/autocomplete-shared * fix: link legacy behaviour * fix: restore head link * chore(env): replace default backend to staging replace default backend to staging api * fix(pkg): pnpm i pnpm i * format: Apply prettier --fix changes * fix(images): size ratio when both className and size ratio when both className and width props is settled, set w+h to ensure ratio correct * fix(sno-type-module): restore .env restore .env * feat: Add unclaimed node button (#38) * fix(sno-add-unclaimed-node): init version init version * fix(sno-add-unclaimed-node): license input license input * fix(sno-add-unclaimed-node): text warning for similar nodes text warning for similar nodes * fix(nodes): dont close form modal when succ, to dont close form modal when succ, to allow next data * fix(sno-add-unclaimed-node): lock update lock update * format: Apply prettier --fix changes * fix(sno-admin-redir): Show 403 when user === undefined Show 403 when user === undefined * docs(authAdmin): explain the return explain the return * fix(admincreatenodeformmodal): fix query param position fix query param position * fix(HOC): remove console remove console * format: Apply prettier --fix changes * fix(sno-flagged-node-style): highlight results with yaml (#48) * fix(sno-flagged-node-style): highlight results with yaml highlight results with yaml * fix(sno-flagged-node-style): pnpm pnpm * fix(sno-flagged-node-style): problemsSummary problemsSummary * fix(sno-flagged-node-style): use comparing use comparing * fix(sno-flagged-node-style): linenumber rename linenumber rename * fix(sno-flagged-node-style): use sort, as toSorted not supported use sort, as toSorted not supported in es6 * fix(rambda): v9 v9 * fix(rambda): ^v9 ^v9 * fix(sno-flagged-node-style): lock lock * fix(nodeversions): toSorted = toSorted = * fix(nodeversions): toSorted = toSorted = * fix(admin): use sort use sort * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * fix(NodeStatusReason): fix useGetNode param position fix useGetNode param position * fix(components): optional schema optional schema * fix(nodestatus): reason remove errorlist render reason remove errorlist render * fix(sno-flagged-node-style): hide url since its clickable hide url since its clickable * format: Apply prettier --fix changes * fix(sno-flagged-node-style): same line link same line link --------- Co-authored-by: Copilot <[email protected]> * Also show banned nodes (#59) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * chore(env): replace default backend to staging (#47) replace default backend to staging api * fix(sno-tidy-auth-hoc): improve hoc logic for readability a (#61) * fix(sno-tidy-auth-hoc): improve hoc logic for readability a improve hoc logic for readability and give better error response * fix(AuthUI): go back fromUrl after logged in go back fromUrl after logged in * fix(components): add fromUrl to searchparams in head add fromUrl to searchparams in header * fix(sno-tidy-auth-hoc): read fromUrl from location.search read fromUrl from location.search * Feat: allow undo a nodeversion review (#62) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-reject-comment): require fill reject comment require fill reject comment * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * fix(sno-reject-comment): allow review comment allow review comment * fix(statusHistory): typo typo * fix(onReview): update status from param update status from param * fix(sno-undo): format format * fix(sno-undo): add undo button if undoable add undo button if undoable * format: Apply prettier --fix changes * fix(sno-undo): checkIsUndoable tested checkIsUndoable tested * fix(undo): message message * fix(sno-undo): reject to banned reject to banned * fix(sno-undo): update schema update schema * fix(issue): list polyfill line_number list polyfill line_number * format: Apply prettier --fix changes * fix(status-reason): try convert status reason to latest try convert status reason to latest schema * fix(components): improev schema of statusreason improev schema of statusreason * docs(yara): maeta maeta * fix(components): simplify matches array simplify matches array * Feat: Profile Dropdown, allows logout & go to admin dashboard (#64) * fix(sno-profile-dropdown): logout and profiledropdown allows g logout and profiledropdown allows go to admin dashboard * format: Apply prettier --fix changes * fix(sno-update-ts): upgrade tso 5.8 (#68) upgrade tso 5.8 * Sno issue diff (#71) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-reject-comment): require fill reject comment require fill reject comment * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * fix(sno-reject-comment): allow review comment allow review comment * fix(statusHistory): typo typo * fix(onReview): update status from param update status from param * fix(sno-undo): format format * fix(sno-undo): add undo button if undoable add undo button if undoable * format: Apply prettier --fix changes * fix(sno-undo): checkIsUndoable tested checkIsUndoable tested * fix(undo): message message * fix(sno-undo): reject to banned reject to banned * fix(sno-undo): update schema update schema * fix(issue): list polyfill line_number list polyfill line_number * format: Apply prettier --fix changes * fix(status-reason): try convert status reason to latest try convert status reason to latest schema * fix(components): improev schema of statusreason improev schema of statusreason * fix(sno-batch): stage stage * fix(sno-batch): allow batch select allow batch select * format: Apply prettier --fix changes * fix(sno-batch): batch ops batch ops * fix(sno-batch): parse yara issue results parse yara issue results * fix(sno-batch): better style better style * fix(sno-batch): allow select all allow select all * fix(sno-batch): remove add unclaimed node btn remove add unclaimed node btn * fix(sno-batch): trim while filepath too long trim while filepath too long * format: Apply prettier --fix changes * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * Revert "Update components/NodeStatusReason.tsx" This reverts commit 2815766. * fix(sno-issue-diff): show diff view show diff view * fix(components): show compare view only if flagged show compare view only if flagged * feat(components): show nodeversions history show nodeversions history * feat(sno-issue-diff): show nodeversions history show nodeversions history * fix(sno-issue-diff): filter by nodeid and version filter by nodeid and version * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> * Sno show unclaimed (#77) * fix(sno-show-unclaimed): show unclaimed node id as Unclaimed show unclaimed node id as Unclaimed * fix(sno-show-unclaimed): hint git clone command in node page hint git clone command in node page * format: Apply prettier --fix changes * Sno show unclaimed (#78) * fix(sno-show-unclaimed): show unclaimed node id as Unclaimed show unclaimed node id as Unclaimed * fix(sno-show-unclaimed): hint git clone command in node page hint git clone command in node page * format: Apply prettier --fix changes * fix(unclaimed): codeblock break line codeblock break line * fix(sno-issues-horizontal-scroll): allow horizontal scrolling (#74) * fix(sno-issues-horizontal-scroll): allow horizontal scrolling allow horizontal scrolling * fix(sno-issues-horizontal-scroll): allow nodeversionhistory and issues allow nodeversionhistory and issues horizontal scrolling * format: Apply prettier --fix changes * fix(sno-issues-horizontal-scroll): link param nv version link param nv version * fix(sno-update-public-key): update public key to dreamboothy-de (#81) update public key to dreamboothy-dev * fix(sno-cache-auth): add cache for /users data (#79) * fix(sno-cache-auth): add cache for /users data add cache for /users data * format: Apply prettier --fix changes * chore(pkg): bump version for redeploy bump version for redeploy * fix(sno-cache-auth): use persistEffect use persistEffect * fix(sno-cache-auth): use [] dep use [] dep * format: Apply prettier --fix changes * fix(sno-cache-auth): persist all queries for now persist all queries for now * fix(sno-cache-auth): disable persist all for now disable persist all for now * fix(sno-cache-auth): prevent sort undefined prevent sort undefined * format: Apply prettier --fix changes * fix(sno-move-discord-icon): mv discord btn to right (#82) mv discord btn to right * fix(sno-delete-package-lock-json): ok (#84) ok * Sno add batch hash (#83) * fix(sno-batch-hash): add batch id add batch id * fix(sno-batch-hash): add todo undo batch add todo undo batch * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * Sno nv history buttons (#73) * fix(sno-nv-history-buttons): add version filter btn add version filter btn * fix(sno-nv-history-buttons): use nv.node_id insteadof node.id use nv.node_id insteadof node.id * fix(sno-nv-history-badge-color): extract NodeStatusBadge (#72) * fix(sno-nv-history-badge-color): extract NodeStatusBadge extract NodeStatusBadge * format: Apply prettier --fix changes * format * fix(sno-disable-upload): disable upload logo as not planned (#85) disable upload logo as not planned * fix(sno-problem-summary-view-json): show problem summary json (#87) show problem summary json * Sno issues search (#86) * fix(orval): use env api url use env api url * fix(sno-issues-search): orval update orval update * regenerate api * fix: ignore swcminify in nextconfig * fix(sno-issues-search): add filter by status reason add filter by status reason * fix(sno-issues-search): use empty string to avoid nil crash use empty string to avoid nil crash * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: snomiao <[email protected]> Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]>
snomiao
added a commit
that referenced
this pull request
Jun 3, 2025
* fix issue 26 back button does not work properly (#31) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(search-result): history navigating history navigating * fix(Search): remove duplicated meta info remove duplicated meta info * fix(26-back-button-does-not-work-properly): remove console remove console * format: prettier * fix(26-back-button-does-not-work-properly): rum pnpm format-fix rum pnpm format-fix * fix(registry): try make sth needs to format try make sth needs to format * format: Apply prettier --fix changes --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * Sno feat node delete button (#36) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(sno-feat-node-delete-button): del del * fix(nodes): onclose onclose * fix(sno-feat-node-delete-button): done done * fix(AuthUI): remove console remove console * fix(nodes): nodedetails solve conflict nodedetails solve conflict * fix(message): says node deleted says node deleted * fix(node-delete): go to /nodes after deletion success go to /nodes after deletion success --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * Fix auth main (#32) * Remove track. * Update. * Print user credential. * Remove beta. * Update staging branch (#30) * Remove beta. * Only show node versions with certain statuses. * Add accept or reject node page for admins. * Add admin home page. * Refetch on actions. * Show status reason. * remove github icon * Add total results. * Add Download numbers * Add delete modal. * Show download numbers. * Fixed: drawer did not open on non publisher node. * Don't retry on 404 queries. * Fix margin on search results. * Remove redundant call to listAllNodes. * Use node icon. * feat(search-node-name): add comfy_nodes and description to (#27) * feat(search-node-name): add comfy_nodes and description to add comfy_nodes and description to search results * fix(search-hit): count matched count matched * Improve mobile CSS. * Update fonts. * fix(sno-fix-total-install): meta info pretty (#28) * fix(sno-fix-gray-bg): fix gray bg (#29) fix gray bg --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * fix(fix-authmain): render spinner while loading user p render spinner while loading user permission * fix(AuthUI): remove console log remove console log --------- Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> * refactor(NodeDetails.tsx): rename data variable to node for clarity and consistency in the component (#39) fix(NodeDetails.tsx): handle loading and error states correctly by checking node instead of data * fix(sno-admin-redir): Show 403 when admin HOC is redirecting (#42) * fix(sno-admin-redir): Show 403 when user === undefined Show 403 when user === undefined * docs(authAdmin): explain the return explain the return * feat(NodeDetails): Unclaimed node style (#40) * refactor(NodeDetails.tsx): rename data variable to node for clarity and consistency in the component fix(NodeDetails.tsx): handle loading and error states correctly by checking node instead of data * feat(NodeDetails): enhance node details display with unclaimed node handling and improve code readability feat(constants): add UNCLAIMED_ADMIN_PUBLISHER_ID constant for better management of unclaimed nodes style(globals.css): add hidden class utility to manage visibility of elements * Update src/constants.ts Co-authored-by: Robin Huang <[email protected]> * fix(sno-unclaimed-nodes-style): update hidden update hidden --------- Co-authored-by: Robin Huang <[email protected]> * Bump axios from 1.6.8 to 1.8.2 (#44) Bumps [axios](https://github.com/axios/axios) from 1.6.8 to 1.8.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.6.8...v1.8.2) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Sno allow admin edit (#46) * feat(sno-allow-admin-edit): allow admin edit allow admin edit * fix(sno-allow-admin-edit): warning for admin edit warning for admin edit * format: Apply prettier --fix changes * fix(sno-allow-admin-edit): replace force into admin word replace force into admin word * feat: show publisher id under node name (#53) * fix(nodes): note: publisherId can be undefined note: publisherId can be undefined when accessing * fix(nodes): show publisher id show publisher id * fix(sno-list-nodes-for-publisher): list nodes in publisher page (#54) * fix(sno-list-nodes-for-publisher): list nodes in publisher page list nodes in publisher page * format: Apply prettier --fix changes * feat: allow pagination in publisher's node list (#55) * docs(sno-list-nodes-api-update): orval hightlight as sh orval hightlight as sh * fix(sno-list-nodes-api-update): update api to prod latest update api to prod latest * fix(sno-list-nodes-api-update): use pagination use pagination * fix(sno-list-nodes-api-update): page offset from 1 page offset from 1 * format: Apply prettier --fix changes * fix(sno-list-nodes-api-update): use 12 as limit use 12 as limit * fix(sno-list-nodes-api-update): render total render total * format: Apply prettier --fix changes * fix(sno-list-nodes-api-update): use nodeid as key in array map fn use nodeid as key in array map fn * Run npx -y orval regularly (#52) * fix(sno-api-gen): run npx -y orval run npx -y orval * fix(sno-api-gen): setup action setup action * fix(sno-api-gen): format format * fix(sno-api-gen): update api to latest update api to latest * chore: upgrade nextjs to latest (#51) * chore(sno-type-module): upgrade to latest standard esmodule upgrade to latest standard esmodule * fix(sno-type-module): to next 15 to next 15 * fix(nextconfig): use typescript use typescript * fix(nextjs): mdx mdx * fix: transpile @algolia/autocomplete-shared * fix: link legacy behaviour * fix: restore head link * chore(env): replace default backend to staging replace default backend to staging api * fix(pkg): pnpm i pnpm i * format: Apply prettier --fix changes * fix(images): size ratio when both className and size ratio when both className and width props is settled, set w+h to ensure ratio correct * fix(sno-type-module): restore .env restore .env * feat: Add unclaimed node button (#38) * fix(sno-add-unclaimed-node): init version init version * fix(sno-add-unclaimed-node): license input license input * fix(sno-add-unclaimed-node): text warning for similar nodes text warning for similar nodes * fix(nodes): dont close form modal when succ, to dont close form modal when succ, to allow next data * fix(sno-add-unclaimed-node): lock update lock update * format: Apply prettier --fix changes * fix(sno-admin-redir): Show 403 when user === undefined Show 403 when user === undefined * docs(authAdmin): explain the return explain the return * fix(admincreatenodeformmodal): fix query param position fix query param position * fix(HOC): remove console remove console * format: Apply prettier --fix changes * fix(sno-flagged-node-style): highlight results with yaml (#48) * fix(sno-flagged-node-style): highlight results with yaml highlight results with yaml * fix(sno-flagged-node-style): pnpm pnpm * fix(sno-flagged-node-style): problemsSummary problemsSummary * fix(sno-flagged-node-style): use comparing use comparing * fix(sno-flagged-node-style): linenumber rename linenumber rename * fix(sno-flagged-node-style): use sort, as toSorted not supported use sort, as toSorted not supported in es6 * fix(rambda): v9 v9 * fix(rambda): ^v9 ^v9 * fix(sno-flagged-node-style): lock lock * fix(nodeversions): toSorted = toSorted = * fix(nodeversions): toSorted = toSorted = * fix(admin): use sort use sort * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * fix(NodeStatusReason): fix useGetNode param position fix useGetNode param position * fix(components): optional schema optional schema * fix(nodestatus): reason remove errorlist render reason remove errorlist render * fix(sno-flagged-node-style): hide url since its clickable hide url since its clickable * format: Apply prettier --fix changes * fix(sno-flagged-node-style): same line link same line link --------- Co-authored-by: Copilot <[email protected]> * Also show banned nodes (#59) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * chore(env): replace default backend to staging (#47) replace default backend to staging api * fix(sno-tidy-auth-hoc): improve hoc logic for readability a (#61) * fix(sno-tidy-auth-hoc): improve hoc logic for readability a improve hoc logic for readability and give better error response * fix(AuthUI): go back fromUrl after logged in go back fromUrl after logged in * fix(components): add fromUrl to searchparams in head add fromUrl to searchparams in header * fix(sno-tidy-auth-hoc): read fromUrl from location.search read fromUrl from location.search * Feat: allow undo a nodeversion review (#62) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-reject-comment): require fill reject comment require fill reject comment * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * fix(sno-reject-comment): allow review comment allow review comment * fix(statusHistory): typo typo * fix(onReview): update status from param update status from param * fix(sno-undo): format format * fix(sno-undo): add undo button if undoable add undo button if undoable * format: Apply prettier --fix changes * fix(sno-undo): checkIsUndoable tested checkIsUndoable tested * fix(undo): message message * fix(sno-undo): reject to banned reject to banned * fix(sno-undo): update schema update schema * fix(issue): list polyfill line_number list polyfill line_number * format: Apply prettier --fix changes * fix(status-reason): try convert status reason to latest try convert status reason to latest schema * fix(components): improev schema of statusreason improev schema of statusreason * docs(yara): maeta maeta * fix(components): simplify matches array simplify matches array * Feat: Profile Dropdown, allows logout & go to admin dashboard (#64) * fix(sno-profile-dropdown): logout and profiledropdown allows g logout and profiledropdown allows go to admin dashboard * format: Apply prettier --fix changes * fix(sno-update-ts): upgrade tso 5.8 (#68) upgrade tso 5.8 * Sno issue diff (#71) * fix(sno-show-banned): done done * fix(sno-show-banned): revert unrelated changes revert unrelated changes * fix(sno-reject-comment): require fill reject comment require fill reject comment * fix(sno-show-banned): default filter as flagged default filter as flagged * format: Apply prettier --fix changes * fix(sno-reject-comment): allow review comment allow review comment * fix(statusHistory): typo typo * fix(onReview): update status from param update status from param * fix(sno-undo): format format * fix(sno-undo): add undo button if undoable add undo button if undoable * format: Apply prettier --fix changes * fix(sno-undo): checkIsUndoable tested checkIsUndoable tested * fix(undo): message message * fix(sno-undo): reject to banned reject to banned * fix(sno-undo): update schema update schema * fix(issue): list polyfill line_number list polyfill line_number * format: Apply prettier --fix changes * fix(status-reason): try convert status reason to latest try convert status reason to latest schema * fix(components): improev schema of statusreason improev schema of statusreason * fix(sno-batch): stage stage * fix(sno-batch): allow batch select allow batch select * format: Apply prettier --fix changes * fix(sno-batch): batch ops batch ops * fix(sno-batch): parse yara issue results parse yara issue results * fix(sno-batch): better style better style * fix(sno-batch): allow select all allow select all * fix(sno-batch): remove add unclaimed node btn remove add unclaimed node btn * fix(sno-batch): trim while filepath too long trim while filepath too long * format: Apply prettier --fix changes * Update components/NodeStatusReason.tsx Co-authored-by: Copilot <[email protected]> * Revert "Update components/NodeStatusReason.tsx" This reverts commit 2815766. * fix(sno-issue-diff): show diff view show diff view * fix(components): show compare view only if flagged show compare view only if flagged * feat(components): show nodeversions history show nodeversions history * feat(sno-issue-diff): show nodeversions history show nodeversions history * fix(sno-issue-diff): filter by nodeid and version filter by nodeid and version * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> * Sno show unclaimed (#77) * fix(sno-show-unclaimed): show unclaimed node id as Unclaimed show unclaimed node id as Unclaimed * fix(sno-show-unclaimed): hint git clone command in node page hint git clone command in node page * format: Apply prettier --fix changes * Sno show unclaimed (#78) * fix(sno-show-unclaimed): show unclaimed node id as Unclaimed show unclaimed node id as Unclaimed * fix(sno-show-unclaimed): hint git clone command in node page hint git clone command in node page * format: Apply prettier --fix changes * fix(unclaimed): codeblock break line codeblock break line * fix(sno-issues-horizontal-scroll): allow horizontal scrolling (#74) * fix(sno-issues-horizontal-scroll): allow horizontal scrolling allow horizontal scrolling * fix(sno-issues-horizontal-scroll): allow nodeversionhistory and issues allow nodeversionhistory and issues horizontal scrolling * format: Apply prettier --fix changes * fix(sno-issues-horizontal-scroll): link param nv version link param nv version * fix(sno-update-public-key): update public key to dreamboothy-de (#81) update public key to dreamboothy-dev * fix(sno-cache-auth): add cache for /users data (#79) * fix(sno-cache-auth): add cache for /users data add cache for /users data * format: Apply prettier --fix changes * chore(pkg): bump version for redeploy bump version for redeploy * fix(sno-cache-auth): use persistEffect use persistEffect * fix(sno-cache-auth): use [] dep use [] dep * format: Apply prettier --fix changes * fix(sno-cache-auth): persist all queries for now persist all queries for now * fix(sno-cache-auth): disable persist all for now disable persist all for now * fix(sno-cache-auth): prevent sort undefined prevent sort undefined * format: Apply prettier --fix changes * fix(sno-move-discord-icon): mv discord btn to right (#82) mv discord btn to right * fix(sno-delete-package-lock-json): ok (#84) ok * Sno add batch hash (#83) * fix(sno-batch-hash): add batch id add batch id * fix(sno-batch-hash): add todo undo batch add todo undo batch * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * Sno nv history buttons (#73) * fix(sno-nv-history-buttons): add version filter btn add version filter btn * fix(sno-nv-history-buttons): use nv.node_id insteadof node.id use nv.node_id insteadof node.id * fix(sno-nv-history-badge-color): extract NodeStatusBadge (#72) * fix(sno-nv-history-badge-color): extract NodeStatusBadge extract NodeStatusBadge * format: Apply prettier --fix changes * format * fix(sno-disable-upload): disable upload logo as not planned (#85) disable upload logo as not planned * fix(sno-problem-summary-view-json): show problem summary json (#87) show problem summary json * Sno issues search (#86) * fix(orval): use env api url use env api url * fix(sno-issues-search): orval update orval update * regenerate api * fix: ignore swcminify in nextconfig * fix(sno-issues-search): add filter by status reason add filter by status reason * fix(sno-issues-search): use empty string to avoid nil crash use empty string to avoid nil crash * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun * [fix] resolve duplicate publishers path in navigation (#94) Convert relative paths to absolute paths in PublisherNodes component to prevent URL duplication when navigating from publishers page to node details. * chore(package.json): update dependencies and devDependencies to latest versions for improved stability and features (#96) * feat(NodeDetails): add NodeVersionStatusBadge component to display ve… (#97) * feat(NodeDetails): add NodeVersionStatusBadge component to display version status for better user feedback * feat(NodeDetails): move NodeVersionStatusBadge inside the version header to improve UI layout and readability * fix(NodeDetails.tsx): conditionally render NodeVersionStatusBadge based on canEdit to improve UI logic * feat(NodeVDrawer): add status message display for banned node versions to improve user feedback refactor(NodeVDrawer): reorganize imports and clean up commented code for better readability and maintainability * feat(NodeDetails): refactor user permissions logic for better readability and maintainability style(NodeVDrawer): remove unnecessary line breaks for cleaner code formatting * format: Apply prettier --fix changes * style(NodeDetails.tsx): add flex and gap classes to the version header for improved layout and spacing * style(NodeDetails.tsx): adjust layout of version status badge for better alignment and readability * refactor(NodeVersionStatusBadge): simplify status badge rendering logic using a status map for better maintainability and readability * format: Apply prettier --fix changes * Revert "feat(NodeDetails): add NodeVersionStatusBadge component to display ve…" (#99) This reverts commit d0821aa. * Use new Algolia proxy (#91) * Use Algoliasearch v5 * format: Apply prettier --fix changes * Use env again * format: Apply prettier --fix changes * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Merge branch 'staging' of github.com:Comfy-Org/registry-web into sno-update-staging * chore(orval.config.ts): fix formatting by removing unnecessary newline at the end of the file to maintain consistency * orval * format: Apply prettier --fix changes --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Robin Huang <[email protected]> Co-authored-by: Yoland Y <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]> Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]>
snomiao
added a commit
that referenced
this pull request
Jun 20, 2025
* fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes
snomiao
added a commit
that referenced
this pull request
Jun 20, 2025
* fix(sno-unpatch-queryForNodeId): done done * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun * [fix] resolve duplicate publishers path in navigation (#94) Convert relative paths to absolute paths in PublisherNodes component to prevent URL duplication when navigating from publishers page to node details. * chore(package.json): update dependencies and devDependencies to latest versions for improved stability and features (#96) * feat(NodeDetails): add NodeVersionStatusBadge component to display ve… (#97) * feat(NodeDetails): add NodeVersionStatusBadge component to display version status for better user feedback * feat(NodeDetails): move NodeVersionStatusBadge inside the version header to improve UI layout and readability * fix(NodeDetails.tsx): conditionally render NodeVersionStatusBadge based on canEdit to improve UI logic * feat(NodeVDrawer): add status message display for banned node versions to improve user feedback refactor(NodeVDrawer): reorganize imports and clean up commented code for better readability and maintainability * feat(NodeDetails): refactor user permissions logic for better readability and maintainability style(NodeVDrawer): remove unnecessary line breaks for cleaner code formatting * format: Apply prettier --fix changes * style(NodeDetails.tsx): add flex and gap classes to the version header for improved layout and spacing * style(NodeDetails.tsx): adjust layout of version status badge for better alignment and readability * refactor(NodeVersionStatusBadge): simplify status badge rendering logic using a status map for better maintainability and readability * format: Apply prettier --fix changes * Revert "feat(NodeDetails): add NodeVersionStatusBadge component to display ve…" (#99) This reverts commit d0821aa. * Use new Algolia proxy (#91) * Use Algoliasearch v5 * format: Apply prettier --fix changes * Use env again * format: Apply prettier --fix changes * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(tailwind.config.cjs): remove deprecated color names and use saf… (#108) * chore(tailwind.config.cjs): remove deprecated color names and use safeColors to ensure compatibility with future Tailwind versions * format: Apply prettier --fix changes * chore(tailwind.config.cjs): restore type annotation for Tailwind CSS configuration for better type safety and clarity * feat(MailtoNodeVersionModal): add modal for contacting node version p… (#95) * feat(MailtoNodeVersionModal): add modal for contacting node version publisher via GitHub or email feat(nodeversions): integrate MailtoNodeVersionModal to allow users to contact publishers directly from the node version list * style(MailtoNodeVersionModal.tsx): format JSX by removing unnecessary whitespace for consistency chore(nodeversions.tsx): move mailtoNv state declaration to the correct position for better readability and organization * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(nodeversions.tsx): update import path for MailtoNodeVersionModal to reflect new directory structure * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(NodeVersionStatusBadge): update badge text from "Banned" to "Rejected" for clarity and accuracy * refactor(NodeDetails.tsx): simplify user permission checks by consolidating logic for better readability and maintainability * feat(MailtoNodeVersionModal): refactor modal to improve email and GitHub issue links and add loading states refactor(NodeVersionList): simplify button rendering logic and improve layout for better readability * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * chore(nodeversions.tsx): remove duplicate import of MailtoNodeVersionModal to clean up code and avoid redundancy * refactor(MailtoNodeVersionModal.tsx): simplify email filtering and mapping logic for better readability and performance --------- Co-authored-by: Copilot <[email protected]> * Admin Claim Node Page (#107) * feat(claim-nodes): add ClaimNodesPage for managing unclaimed nodes in admin panel This new page allows administrators to view, add, and manage unclaimed nodes. It includes pagination and error handling for better user experience. * fix(claim-nodes.tsx): move export default statement to the top for better readability and consistency style(claim-nodes.tsx): remove unnecessary whitespace to maintain code cleanliness * feat(claim-nodes.tsx): add icons to buttons for better user experience and visual clarity * feat(admin/index.tsx): update admin dashboard buttons to improve functionality and UI - Change "Add Unclaimed Node" button to "Manage Unclaimed Nodes" for clarity. - Update button action to navigate to the new route for managing unclaimed nodes. - Add icons to buttons for better visual representation and user experience. * feat(AdminCreateNodeFormModal): add HiPlus icon to the Add button for improved UI clarity * refactor(NodesCard.tsx): simplify Link component usage by removing unnecessary nested anchor tag for cleaner code and improved readability * feat(claim-nodes.tsx): add Breadcrumb component for better navigation and improve UI structure style(claim-nodes.tsx): format code for better readability and consistency * feat(admin/index.tsx): add Breadcrumb component to Admin Dashboard for better navigation context * feat(nodeversions.tsx): add Breadcrumb component for better navigation in the admin panel to enhance user experience and provide clear context * fix(AdminCreateNodeFormModal): re-enable toast notifications for better user feedback fix(AdminCreateNodeFormModal): set dismissible prop to false to prevent modal from being dismissed unintentionally * feat(add-unclaimed-node.tsx): add breadcrumb navigation to enhance user experience and improve page context * format: Apply prettier --fix changes * refactor(claim-nodes.tsx): replace useSearchNodes with useListNodesForPublisherV2 for improved data fetching and clarity fix(claim-nodes.tsx): update error handling to use isError instead of error for better consistency in state management * feat(PublisherId): add PublisherId component to display publisher ID or unclaimed status This component conditionally renders the publisher ID or a message indicating that the publisher is unclaimed, enhancing the user interface by providing clear information about the publisher's status. * refactor(SearchHit.tsx): replace hardcoded publisher ID check with PublisherId component for better readability and maintainability * feat(NodeClaimModal): add a modal for claiming nodes with publisher verification functionality feat(UnclaimedNodeCard): create a card component for unclaimed nodes with edit functionality refactor(claim-nodes): replace NodesCard with UnclaimedNodeCard for better modularity and functionality chore(claim-nodes): increase page size for node listing to improve user experience * refactor(NodeClaimModal): remove onSuccess prop to simplify component interface and improve clarity refactor(UnclaimedNodeCard): remove onNodeClaimed prop as it is no longer needed in NodeClaimModal * fix(NodeClaimModal): simplify data object structure in updateNodeMutation call for better readability docs(NodeClaimModal): add note about backend API support for claiming nodes and mark feature as WIP style(NodeClaimModal): update button label to indicate that claiming a node is a work in progress * feat(NodeClaimModal): add onSuccess callback prop to handle successful claims feat(UnclaimedNodeCard): pass onSuccess prop to NodeClaimModal for better claim handling fix(ClaimNodesPage): invalidate node list query after a successful claim to ensure data consistency * chore(NodeClaimModal.tsx): remove console.error statements to clean up error handling and improve user feedback with toast notifications * format: Apply prettier --fix changes * Search Rank Level (#105) * feat(admin): add Search Ranking button to Admin Dashboard for easier navigation to search ranking page * feat(NodeDetails): add search ranking edit functionality for admin users to manage node search ranking refactor(NodeDetails): improve code readability by using consistent variable naming and removing unnecessary type assertions * refactor(NodeDetails.tsx): remove unused getGetNodeQueryKey import and clean up code by removing commented-out SearchRankingEditModal component fix(NodeDetails.tsx): update Edit Search Ranking button to include mode parameter in URL and ensure versionNumber is a string * feat(NodeDetails): add SearchRankingEditModal for editing search ranking of nodes feat(SearchRankingEditModal): create modal component for updating search ranking with validation and API integration * format: Apply prettier --fix changes * format: Apply prettier --fix changes * feat(NodeDetails.tsx): enhance admin functionality by adding search ranking display and edit option style(NodeDetails.tsx): improve layout and semantics with Label component for search ranking * feat(SearchRankingEditModal): refactor modal to use form submission for search ranking updates This change improves the user experience by allowing the form to be submitted via the Enter key and ensures proper handling of the form submission event. * feat(search-ranking.tsx): add Search Ranking Management page for admin to manage nodes and their search rankings This page allows admins to search, view, and edit the search rankings of nodes, enhancing the management capabilities of the application. * refactor(search-ranking.tsx): reorganize imports and improve code readability by removing unnecessary whitespace and aligning code structure feat(search-ranking.tsx): update pagination and search functionality to use new API methods and improve user experience with query parameters * fix(search-ranking.tsx): reduce the limit of fetched nodes from 30 to 24 to optimize performance and improve user experience * feat(hooks): add useRouterQuery hook to manage URL query parameters easily This hook simplifies accessing and updating URL query parameters, allowing for better state management in components. It provides functions to update, replace, and remove query parameters while preserving existing ones. * refactor(search-ranking.tsx): simplify query parameter handling by using a custom hook to manage router queries fix(search-ranking.tsx): update search input handling to use defaultValue instead of value for better form behavior * format: Apply prettier --fix changes * feat(admin/index.tsx): enhance AdminDashboard by adding an icon and renaming button for clarity refactor(admin/index.tsx): move export statement for AdminDashboard to the top for better readability * format: Apply prettier --fix changes * style(admin/index.tsx): update button layout and styling for better responsiveness and visual consistency * feat(SearchRankingEditModal): add quickMode prop to optimize user experience by closing modal immediately after update refactor(SearchRankingEditModal): improve cache management by optimistically updating search ranking and invalidating queries after mutation * Fix auth redirects. (#113) * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * Fix UI Icons (#114) * style(NodeEditModal.tsx): comment out the "Upload Logo" text to improve UI clarity without removing the code * feat(NodeDetails.tsx): add MdOpenInNew icon to enhance the repository link with a visual indicator for opening in a new tab * Allow admin to edit preempted comfy node names (#116) * docs(README): add instructions for enabling CORS on Google Cloud Storage bucket to improve deployment documentation * feat(NodeDetails.tsx): add Preemptive Names management section with modal for editing preemptive names feat(PreemptiveNamesEditModal.tsx): create modal component for editing preemptive names with optimistic UI updates feat(preemptive-names.tsx): add admin page for managing preemptive names with search and pagination feat(index.tsx): add button for navigating to Preemptive Names Management page in admin dashboard * fix(NodeDetails): update defaultPreemptiveNames to use preempted_comfy_node_names for better accuracy in data representation * feat(NodeDetails.tsx): rename PreemptiveNamesEditModal to PreemptedComfyNodeNamesEditModal for clarity feat(PreemptedComfyNodeNamesEditModal.tsx): add new modal component for managing preempted comfy node names feat(preempted-comfy-node-names.tsx): create new admin page for managing preempted comfy node names fix(admin/index.tsx): update button navigation and label for preemptive names management to reflect new terminology * format: Apply prettier --fix changes * fix(NodeDetails.tsx): update display of preempted comfy node names to improve readability by using a preformatted text block and changing the label to "Preempted Names" * chore(NodeDetails.tsx): remove duplicate import of PreemptedComfyNodeNamesEditModal to clean up the code style(NodeDetails.tsx): format code for better readability in the preempted names display logic * [fix] send complete node objects in admin update API calls (#119) * [fix] send complete node objects in admin update API calls Fixes 500 internal server errors when updating search_ranking and preempted_comfy_node_names. The generated API client expects the full Node object, not partial updates. * format: Apply prettier --fix changes * fix(NodeStatusReason): display message if code_snippet is not availab… (#120) * fix(NodeStatusReason): display message if code_snippet is not available to enhance user feedback * feat(NodeStatusReason.tsx): add optional message field to zErrorArray for enhanced error reporting * feat(global.d.ts): add TypeScript declaration for importing SVG files to enable proper type checking and module resolution for SVG assets (#109) * Optimize node-details buttons layout (#117) * refactor(NodeDetails.tsx): reorganize Search Ranking and Preempted Names sections for better layout and consistency style(NodeDetails.tsx): adjust button margin and icon size for improved UI appearance * feat(NodeDetails): add button to download the latest node version with analytics tracking for user interaction refactor(NodeDetails): remove duplicate download button code for cleaner structure and maintainability * feat(stories): add NodeDetails component stories for Storybook to showcase different states and configurations of the component feat(stories): create NodeDetailsStory component to provide a simplified version for Storybook without Next.js dependencies * format: Apply prettier --fix changes * feat(NodeDetails.stories.tsx): enhance NodeDetails stories with mocks for better testing and visualization refactor(NodeDetails.stories.tsx): restructure story setup to include query client and mock data for improved clarity and maintainability * feat(stories): add NodeDetails component stories with mock data for testing and demonstration purposes * Revert "Use new Algolia proxy (#91)" (#121) This reverts commit c36a6d4. * Enable unit tests CICD (#115) * fix(batchUtils.ts): enhance generateBatchId function to include a random string in the timestamp for improved uniqueness of batch IDs * feat(package.json): add test script to run tests with coverage using bun * feat(ci): add GitHub Actions workflow for Chromatic Visual Testing to automate visual regression testing on push and pull request events * chore(package.json): remove unused senv commands and dependency to clean up the project configuration (#106) * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them (#124) fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * Sno unlock persist storage (#123) * refactor(app.tsx): remove dehydrateOptions for query persistence to simplify code and improve maintainability * feat(_app.tsx): add build versioning using NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA to manage cache invalidation effectively * feat(_app.tsx): add maxAge option to cache configuration to set cache duration to 1 day for improved performance and cache management * chore(axios-instance.ts): remove Firebase authentication interceptor to simplify Axios instance configuration and reduce dependencies * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(_app.tsx): add Firebase JWT token interceptor to Axios instance for authenticated requests refactor(_app.tsx): improve persistEffect function structure for better readability and maintainability * docs(_app.tsx): add comments explaining the usage of NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA for cache busting and fallback behavior * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * fix(NodeDetails.tsx): refactor repository button to use onClick instead of anchor tag for better event handling feat(NodeDetails.tsx): prevent default action and open repository link in a new tab for improved user experience * style(NodeDetails.tsx): replace span with div for better semantic structure and accessibility in version changelog display * Squashed commit of the following: commit d75737c Author: snomiao <[email protected]> Date: Tue Jun 3 13:12:21 2025 +0900 Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> commit 6afd1f0 Author: snomiao <[email protected]> Date: Tue Jun 3 13:05:42 2025 +0900 chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(api-gen.yml): remove unnecessary blank line to improve workflow file readability * chore(_app.tsx): remove commented-out code for user data persistence to clean up the codebase and improve readability * docs(_app.tsx): update comment to clarify the purpose of query persistence in localStorage for better understanding * format: Apply prettier --fix changes * docs(_app.tsx): add comments to clarify the purpose of persistQueryClient and buster configuration for better understanding of the code * format: Apply prettier --fix changes * chore(tailwind.config.cjs): remove deprecated color names from Tailwind colors to streamline configuration and avoid unnecessary imports (#126) * Fix: Remove legacyBehavior from Link components (#127) * Fix: Remove legacyBehavior from Link components * refactor(SearchHit.tsx): simplify JSX structure by removing unnecessary anchor tag and using React fragments for cleaner code * format: Apply prettier --fix changes * Add breadcrumb navigation (#125) * Add breadcrumb navigation to all admin pages * Update components/common/Breadcrumb.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes * Add breadcrumbs to all pages using Flowbite Breadcrumb component * Fix import order and formatting in breadcrumb components * Replace Button components with Link components in admin dashboard for better accessibility * Fix build errors: update component naming convention and string template usage * Update breadcrumbs: rename to 'Your Nodes', make 'Nodes' non-clickable in node detail page, simplify publisher breadcrumbs * style(admin): add "dark" class to Breadcrumb.Item components for consistent styling across admin pages style(pages): apply "dark" class to Breadcrumb.Item components for improved visual consistency in navigation elements * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]> Co-authored-by: Copilot <[email protected]>
snomiao
added a commit
that referenced
this pull request
Jun 23, 2025
* fix(sno-unpatch-queryForNodeId): done done * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun * [fix] resolve duplicate publishers path in navigation (#94) Convert relative paths to absolute paths in PublisherNodes component to prevent URL duplication when navigating from publishers page to node details. * chore(package.json): update dependencies and devDependencies to latest versions for improved stability and features (#96) * feat(NodeDetails): add NodeVersionStatusBadge component to display ve… (#97) * feat(NodeDetails): add NodeVersionStatusBadge component to display version status for better user feedback * feat(NodeDetails): move NodeVersionStatusBadge inside the version header to improve UI layout and readability * fix(NodeDetails.tsx): conditionally render NodeVersionStatusBadge based on canEdit to improve UI logic * feat(NodeVDrawer): add status message display for banned node versions to improve user feedback refactor(NodeVDrawer): reorganize imports and clean up commented code for better readability and maintainability * feat(NodeDetails): refactor user permissions logic for better readability and maintainability style(NodeVDrawer): remove unnecessary line breaks for cleaner code formatting * format: Apply prettier --fix changes * style(NodeDetails.tsx): add flex and gap classes to the version header for improved layout and spacing * style(NodeDetails.tsx): adjust layout of version status badge for better alignment and readability * refactor(NodeVersionStatusBadge): simplify status badge rendering logic using a status map for better maintainability and readability * format: Apply prettier --fix changes * Revert "feat(NodeDetails): add NodeVersionStatusBadge component to display ve…" (#99) This reverts commit d0821aa. * Use new Algolia proxy (#91) * Use Algoliasearch v5 * format: Apply prettier --fix changes * Use env again * format: Apply prettier --fix changes * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(tailwind.config.cjs): remove deprecated color names and use saf… (#108) * chore(tailwind.config.cjs): remove deprecated color names and use safeColors to ensure compatibility with future Tailwind versions * format: Apply prettier --fix changes * chore(tailwind.config.cjs): restore type annotation for Tailwind CSS configuration for better type safety and clarity * feat(MailtoNodeVersionModal): add modal for contacting node version p… (#95) * feat(MailtoNodeVersionModal): add modal for contacting node version publisher via GitHub or email feat(nodeversions): integrate MailtoNodeVersionModal to allow users to contact publishers directly from the node version list * style(MailtoNodeVersionModal.tsx): format JSX by removing unnecessary whitespace for consistency chore(nodeversions.tsx): move mailtoNv state declaration to the correct position for better readability and organization * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(nodeversions.tsx): update import path for MailtoNodeVersionModal to reflect new directory structure * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(NodeVersionStatusBadge): update badge text from "Banned" to "Rejected" for clarity and accuracy * refactor(NodeDetails.tsx): simplify user permission checks by consolidating logic for better readability and maintainability * feat(MailtoNodeVersionModal): refactor modal to improve email and GitHub issue links and add loading states refactor(NodeVersionList): simplify button rendering logic and improve layout for better readability * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * chore(nodeversions.tsx): remove duplicate import of MailtoNodeVersionModal to clean up code and avoid redundancy * refactor(MailtoNodeVersionModal.tsx): simplify email filtering and mapping logic for better readability and performance --------- Co-authored-by: Copilot <[email protected]> * Admin Claim Node Page (#107) * feat(claim-nodes): add ClaimNodesPage for managing unclaimed nodes in admin panel This new page allows administrators to view, add, and manage unclaimed nodes. It includes pagination and error handling for better user experience. * fix(claim-nodes.tsx): move export default statement to the top for better readability and consistency style(claim-nodes.tsx): remove unnecessary whitespace to maintain code cleanliness * feat(claim-nodes.tsx): add icons to buttons for better user experience and visual clarity * feat(admin/index.tsx): update admin dashboard buttons to improve functionality and UI - Change "Add Unclaimed Node" button to "Manage Unclaimed Nodes" for clarity. - Update button action to navigate to the new route for managing unclaimed nodes. - Add icons to buttons for better visual representation and user experience. * feat(AdminCreateNodeFormModal): add HiPlus icon to the Add button for improved UI clarity * refactor(NodesCard.tsx): simplify Link component usage by removing unnecessary nested anchor tag for cleaner code and improved readability * feat(claim-nodes.tsx): add Breadcrumb component for better navigation and improve UI structure style(claim-nodes.tsx): format code for better readability and consistency * feat(admin/index.tsx): add Breadcrumb component to Admin Dashboard for better navigation context * feat(nodeversions.tsx): add Breadcrumb component for better navigation in the admin panel to enhance user experience and provide clear context * fix(AdminCreateNodeFormModal): re-enable toast notifications for better user feedback fix(AdminCreateNodeFormModal): set dismissible prop to false to prevent modal from being dismissed unintentionally * feat(add-unclaimed-node.tsx): add breadcrumb navigation to enhance user experience and improve page context * format: Apply prettier --fix changes * refactor(claim-nodes.tsx): replace useSearchNodes with useListNodesForPublisherV2 for improved data fetching and clarity fix(claim-nodes.tsx): update error handling to use isError instead of error for better consistency in state management * feat(PublisherId): add PublisherId component to display publisher ID or unclaimed status This component conditionally renders the publisher ID or a message indicating that the publisher is unclaimed, enhancing the user interface by providing clear information about the publisher's status. * refactor(SearchHit.tsx): replace hardcoded publisher ID check with PublisherId component for better readability and maintainability * feat(NodeClaimModal): add a modal for claiming nodes with publisher verification functionality feat(UnclaimedNodeCard): create a card component for unclaimed nodes with edit functionality refactor(claim-nodes): replace NodesCard with UnclaimedNodeCard for better modularity and functionality chore(claim-nodes): increase page size for node listing to improve user experience * refactor(NodeClaimModal): remove onSuccess prop to simplify component interface and improve clarity refactor(UnclaimedNodeCard): remove onNodeClaimed prop as it is no longer needed in NodeClaimModal * fix(NodeClaimModal): simplify data object structure in updateNodeMutation call for better readability docs(NodeClaimModal): add note about backend API support for claiming nodes and mark feature as WIP style(NodeClaimModal): update button label to indicate that claiming a node is a work in progress * feat(NodeClaimModal): add onSuccess callback prop to handle successful claims feat(UnclaimedNodeCard): pass onSuccess prop to NodeClaimModal for better claim handling fix(ClaimNodesPage): invalidate node list query after a successful claim to ensure data consistency * chore(NodeClaimModal.tsx): remove console.error statements to clean up error handling and improve user feedback with toast notifications * format: Apply prettier --fix changes * Search Rank Level (#105) * feat(admin): add Search Ranking button to Admin Dashboard for easier navigation to search ranking page * feat(NodeDetails): add search ranking edit functionality for admin users to manage node search ranking refactor(NodeDetails): improve code readability by using consistent variable naming and removing unnecessary type assertions * refactor(NodeDetails.tsx): remove unused getGetNodeQueryKey import and clean up code by removing commented-out SearchRankingEditModal component fix(NodeDetails.tsx): update Edit Search Ranking button to include mode parameter in URL and ensure versionNumber is a string * feat(NodeDetails): add SearchRankingEditModal for editing search ranking of nodes feat(SearchRankingEditModal): create modal component for updating search ranking with validation and API integration * format: Apply prettier --fix changes * format: Apply prettier --fix changes * feat(NodeDetails.tsx): enhance admin functionality by adding search ranking display and edit option style(NodeDetails.tsx): improve layout and semantics with Label component for search ranking * feat(SearchRankingEditModal): refactor modal to use form submission for search ranking updates This change improves the user experience by allowing the form to be submitted via the Enter key and ensures proper handling of the form submission event. * feat(search-ranking.tsx): add Search Ranking Management page for admin to manage nodes and their search rankings This page allows admins to search, view, and edit the search rankings of nodes, enhancing the management capabilities of the application. * refactor(search-ranking.tsx): reorganize imports and improve code readability by removing unnecessary whitespace and aligning code structure feat(search-ranking.tsx): update pagination and search functionality to use new API methods and improve user experience with query parameters * fix(search-ranking.tsx): reduce the limit of fetched nodes from 30 to 24 to optimize performance and improve user experience * feat(hooks): add useRouterQuery hook to manage URL query parameters easily This hook simplifies accessing and updating URL query parameters, allowing for better state management in components. It provides functions to update, replace, and remove query parameters while preserving existing ones. * refactor(search-ranking.tsx): simplify query parameter handling by using a custom hook to manage router queries fix(search-ranking.tsx): update search input handling to use defaultValue instead of value for better form behavior * format: Apply prettier --fix changes * feat(admin/index.tsx): enhance AdminDashboard by adding an icon and renaming button for clarity refactor(admin/index.tsx): move export statement for AdminDashboard to the top for better readability * format: Apply prettier --fix changes * style(admin/index.tsx): update button layout and styling for better responsiveness and visual consistency * feat(SearchRankingEditModal): add quickMode prop to optimize user experience by closing modal immediately after update refactor(SearchRankingEditModal): improve cache management by optimistically updating search ranking and invalidating queries after mutation * Fix auth redirects. (#113) * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * Fix UI Icons (#114) * style(NodeEditModal.tsx): comment out the "Upload Logo" text to improve UI clarity without removing the code * feat(NodeDetails.tsx): add MdOpenInNew icon to enhance the repository link with a visual indicator for opening in a new tab * Allow admin to edit preempted comfy node names (#116) * docs(README): add instructions for enabling CORS on Google Cloud Storage bucket to improve deployment documentation * feat(NodeDetails.tsx): add Preemptive Names management section with modal for editing preemptive names feat(PreemptiveNamesEditModal.tsx): create modal component for editing preemptive names with optimistic UI updates feat(preemptive-names.tsx): add admin page for managing preemptive names with search and pagination feat(index.tsx): add button for navigating to Preemptive Names Management page in admin dashboard * fix(NodeDetails): update defaultPreemptiveNames to use preempted_comfy_node_names for better accuracy in data representation * feat(NodeDetails.tsx): rename PreemptiveNamesEditModal to PreemptedComfyNodeNamesEditModal for clarity feat(PreemptedComfyNodeNamesEditModal.tsx): add new modal component for managing preempted comfy node names feat(preempted-comfy-node-names.tsx): create new admin page for managing preempted comfy node names fix(admin/index.tsx): update button navigation and label for preemptive names management to reflect new terminology * format: Apply prettier --fix changes * fix(NodeDetails.tsx): update display of preempted comfy node names to improve readability by using a preformatted text block and changing the label to "Preempted Names" * chore(NodeDetails.tsx): remove duplicate import of PreemptedComfyNodeNamesEditModal to clean up the code style(NodeDetails.tsx): format code for better readability in the preempted names display logic * [fix] send complete node objects in admin update API calls (#119) * [fix] send complete node objects in admin update API calls Fixes 500 internal server errors when updating search_ranking and preempted_comfy_node_names. The generated API client expects the full Node object, not partial updates. * format: Apply prettier --fix changes * fix(NodeStatusReason): display message if code_snippet is not availab… (#120) * fix(NodeStatusReason): display message if code_snippet is not available to enhance user feedback * feat(NodeStatusReason.tsx): add optional message field to zErrorArray for enhanced error reporting * feat(global.d.ts): add TypeScript declaration for importing SVG files to enable proper type checking and module resolution for SVG assets (#109) * Optimize node-details buttons layout (#117) * refactor(NodeDetails.tsx): reorganize Search Ranking and Preempted Names sections for better layout and consistency style(NodeDetails.tsx): adjust button margin and icon size for improved UI appearance * feat(NodeDetails): add button to download the latest node version with analytics tracking for user interaction refactor(NodeDetails): remove duplicate download button code for cleaner structure and maintainability * feat(stories): add NodeDetails component stories for Storybook to showcase different states and configurations of the component feat(stories): create NodeDetailsStory component to provide a simplified version for Storybook without Next.js dependencies * format: Apply prettier --fix changes * feat(NodeDetails.stories.tsx): enhance NodeDetails stories with mocks for better testing and visualization refactor(NodeDetails.stories.tsx): restructure story setup to include query client and mock data for improved clarity and maintainability * feat(stories): add NodeDetails component stories with mock data for testing and demonstration purposes * Revert "Use new Algolia proxy (#91)" (#121) This reverts commit c36a6d4. * Enable unit tests CICD (#115) * fix(batchUtils.ts): enhance generateBatchId function to include a random string in the timestamp for improved uniqueness of batch IDs * feat(package.json): add test script to run tests with coverage using bun * feat(ci): add GitHub Actions workflow for Chromatic Visual Testing to automate visual regression testing on push and pull request events * chore(package.json): remove unused senv commands and dependency to clean up the project configuration (#106) * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them (#124) fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * Sno unlock persist storage (#123) * refactor(app.tsx): remove dehydrateOptions for query persistence to simplify code and improve maintainability * feat(_app.tsx): add build versioning using NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA to manage cache invalidation effectively * feat(_app.tsx): add maxAge option to cache configuration to set cache duration to 1 day for improved performance and cache management * chore(axios-instance.ts): remove Firebase authentication interceptor to simplify Axios instance configuration and reduce dependencies * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(_app.tsx): add Firebase JWT token interceptor to Axios instance for authenticated requests refactor(_app.tsx): improve persistEffect function structure for better readability and maintainability * docs(_app.tsx): add comments explaining the usage of NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA for cache busting and fallback behavior * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * fix(NodeDetails.tsx): refactor repository button to use onClick instead of anchor tag for better event handling feat(NodeDetails.tsx): prevent default action and open repository link in a new tab for improved user experience * style(NodeDetails.tsx): replace span with div for better semantic structure and accessibility in version changelog display * Squashed commit of the following: commit d75737c Author: snomiao <[email protected]> Date: Tue Jun 3 13:12:21 2025 +0900 Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> commit 6afd1f0 Author: snomiao <[email protected]> Date: Tue Jun 3 13:05:42 2025 +0900 chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(api-gen.yml): remove unnecessary blank line to improve workflow file readability * chore(_app.tsx): remove commented-out code for user data persistence to clean up the codebase and improve readability * docs(_app.tsx): update comment to clarify the purpose of query persistence in localStorage for better understanding * format: Apply prettier --fix changes * docs(_app.tsx): add comments to clarify the purpose of persistQueryClient and buster configuration for better understanding of the code * format: Apply prettier --fix changes * chore(tailwind.config.cjs): remove deprecated color names from Tailwind colors to streamline configuration and avoid unnecessary imports (#126) * Fix: Remove legacyBehavior from Link components (#127) * Fix: Remove legacyBehavior from Link components * refactor(SearchHit.tsx): simplify JSX structure by removing unnecessary anchor tag and using React fragments for cleaner code * format: Apply prettier --fix changes * Add breadcrumb navigation (#125) * Add breadcrumb navigation to all admin pages * Update components/common/Breadcrumb.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes * Add breadcrumbs to all pages using Flowbite Breadcrumb component * Fix import order and formatting in breadcrumb components * Replace Button components with Link components in admin dashboard for better accessibility * Fix build errors: update component naming convention and string template usage * Update breadcrumbs: rename to 'Your Nodes', make 'Nodes' non-clickable in node detail page, simplify publisher breadcrumbs * style(admin): add "dark" class to Breadcrumb.Item components for consistent styling across admin pages style(pages): apply "dark" class to Breadcrumb.Item components for improved visual consistency in navigation elements * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]> Co-authored-by: Copilot <[email protected]>
snomiao
added a commit
that referenced
this pull request
Jul 5, 2025
* fix(sno-unpatch-queryForNodeId): done done * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun * [fix] resolve duplicate publishers path in navigation (#94) Convert relative paths to absolute paths in PublisherNodes component to prevent URL duplication when navigating from publishers page to node details. * chore(package.json): update dependencies and devDependencies to latest versions for improved stability and features (#96) * feat(NodeDetails): add NodeVersionStatusBadge component to display ve… (#97) * feat(NodeDetails): add NodeVersionStatusBadge component to display version status for better user feedback * feat(NodeDetails): move NodeVersionStatusBadge inside the version header to improve UI layout and readability * fix(NodeDetails.tsx): conditionally render NodeVersionStatusBadge based on canEdit to improve UI logic * feat(NodeVDrawer): add status message display for banned node versions to improve user feedback refactor(NodeVDrawer): reorganize imports and clean up commented code for better readability and maintainability * feat(NodeDetails): refactor user permissions logic for better readability and maintainability style(NodeVDrawer): remove unnecessary line breaks for cleaner code formatting * format: Apply prettier --fix changes * style(NodeDetails.tsx): add flex and gap classes to the version header for improved layout and spacing * style(NodeDetails.tsx): adjust layout of version status badge for better alignment and readability * refactor(NodeVersionStatusBadge): simplify status badge rendering logic using a status map for better maintainability and readability * format: Apply prettier --fix changes * Revert "feat(NodeDetails): add NodeVersionStatusBadge component to display ve…" (#99) This reverts commit d0821aa. * Use new Algolia proxy (#91) * Use Algoliasearch v5 * format: Apply prettier --fix changes * Use env again * format: Apply prettier --fix changes * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(tailwind.config.cjs): remove deprecated color names and use saf… (#108) * chore(tailwind.config.cjs): remove deprecated color names and use safeColors to ensure compatibility with future Tailwind versions * format: Apply prettier --fix changes * chore(tailwind.config.cjs): restore type annotation for Tailwind CSS configuration for better type safety and clarity * feat(MailtoNodeVersionModal): add modal for contacting node version p… (#95) * feat(MailtoNodeVersionModal): add modal for contacting node version publisher via GitHub or email feat(nodeversions): integrate MailtoNodeVersionModal to allow users to contact publishers directly from the node version list * style(MailtoNodeVersionModal.tsx): format JSX by removing unnecessary whitespace for consistency chore(nodeversions.tsx): move mailtoNv state declaration to the correct position for better readability and organization * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(nodeversions.tsx): update import path for MailtoNodeVersionModal to reflect new directory structure * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(NodeVersionStatusBadge): update badge text from "Banned" to "Rejected" for clarity and accuracy * refactor(NodeDetails.tsx): simplify user permission checks by consolidating logic for better readability and maintainability * feat(MailtoNodeVersionModal): refactor modal to improve email and GitHub issue links and add loading states refactor(NodeVersionList): simplify button rendering logic and improve layout for better readability * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * chore(nodeversions.tsx): remove duplicate import of MailtoNodeVersionModal to clean up code and avoid redundancy * refactor(MailtoNodeVersionModal.tsx): simplify email filtering and mapping logic for better readability and performance --------- Co-authored-by: Copilot <[email protected]> * Admin Claim Node Page (#107) * feat(claim-nodes): add ClaimNodesPage for managing unclaimed nodes in admin panel This new page allows administrators to view, add, and manage unclaimed nodes. It includes pagination and error handling for better user experience. * fix(claim-nodes.tsx): move export default statement to the top for better readability and consistency style(claim-nodes.tsx): remove unnecessary whitespace to maintain code cleanliness * feat(claim-nodes.tsx): add icons to buttons for better user experience and visual clarity * feat(admin/index.tsx): update admin dashboard buttons to improve functionality and UI - Change "Add Unclaimed Node" button to "Manage Unclaimed Nodes" for clarity. - Update button action to navigate to the new route for managing unclaimed nodes. - Add icons to buttons for better visual representation and user experience. * feat(AdminCreateNodeFormModal): add HiPlus icon to the Add button for improved UI clarity * refactor(NodesCard.tsx): simplify Link component usage by removing unnecessary nested anchor tag for cleaner code and improved readability * feat(claim-nodes.tsx): add Breadcrumb component for better navigation and improve UI structure style(claim-nodes.tsx): format code for better readability and consistency * feat(admin/index.tsx): add Breadcrumb component to Admin Dashboard for better navigation context * feat(nodeversions.tsx): add Breadcrumb component for better navigation in the admin panel to enhance user experience and provide clear context * fix(AdminCreateNodeFormModal): re-enable toast notifications for better user feedback fix(AdminCreateNodeFormModal): set dismissible prop to false to prevent modal from being dismissed unintentionally * feat(add-unclaimed-node.tsx): add breadcrumb navigation to enhance user experience and improve page context * format: Apply prettier --fix changes * refactor(claim-nodes.tsx): replace useSearchNodes with useListNodesForPublisherV2 for improved data fetching and clarity fix(claim-nodes.tsx): update error handling to use isError instead of error for better consistency in state management * feat(PublisherId): add PublisherId component to display publisher ID or unclaimed status This component conditionally renders the publisher ID or a message indicating that the publisher is unclaimed, enhancing the user interface by providing clear information about the publisher's status. * refactor(SearchHit.tsx): replace hardcoded publisher ID check with PublisherId component for better readability and maintainability * feat(NodeClaimModal): add a modal for claiming nodes with publisher verification functionality feat(UnclaimedNodeCard): create a card component for unclaimed nodes with edit functionality refactor(claim-nodes): replace NodesCard with UnclaimedNodeCard for better modularity and functionality chore(claim-nodes): increase page size for node listing to improve user experience * refactor(NodeClaimModal): remove onSuccess prop to simplify component interface and improve clarity refactor(UnclaimedNodeCard): remove onNodeClaimed prop as it is no longer needed in NodeClaimModal * fix(NodeClaimModal): simplify data object structure in updateNodeMutation call for better readability docs(NodeClaimModal): add note about backend API support for claiming nodes and mark feature as WIP style(NodeClaimModal): update button label to indicate that claiming a node is a work in progress * feat(NodeClaimModal): add onSuccess callback prop to handle successful claims feat(UnclaimedNodeCard): pass onSuccess prop to NodeClaimModal for better claim handling fix(ClaimNodesPage): invalidate node list query after a successful claim to ensure data consistency * chore(NodeClaimModal.tsx): remove console.error statements to clean up error handling and improve user feedback with toast notifications * format: Apply prettier --fix changes * Search Rank Level (#105) * feat(admin): add Search Ranking button to Admin Dashboard for easier navigation to search ranking page * feat(NodeDetails): add search ranking edit functionality for admin users to manage node search ranking refactor(NodeDetails): improve code readability by using consistent variable naming and removing unnecessary type assertions * refactor(NodeDetails.tsx): remove unused getGetNodeQueryKey import and clean up code by removing commented-out SearchRankingEditModal component fix(NodeDetails.tsx): update Edit Search Ranking button to include mode parameter in URL and ensure versionNumber is a string * feat(NodeDetails): add SearchRankingEditModal for editing search ranking of nodes feat(SearchRankingEditModal): create modal component for updating search ranking with validation and API integration * format: Apply prettier --fix changes * format: Apply prettier --fix changes * feat(NodeDetails.tsx): enhance admin functionality by adding search ranking display and edit option style(NodeDetails.tsx): improve layout and semantics with Label component for search ranking * feat(SearchRankingEditModal): refactor modal to use form submission for search ranking updates This change improves the user experience by allowing the form to be submitted via the Enter key and ensures proper handling of the form submission event. * feat(search-ranking.tsx): add Search Ranking Management page for admin to manage nodes and their search rankings This page allows admins to search, view, and edit the search rankings of nodes, enhancing the management capabilities of the application. * refactor(search-ranking.tsx): reorganize imports and improve code readability by removing unnecessary whitespace and aligning code structure feat(search-ranking.tsx): update pagination and search functionality to use new API methods and improve user experience with query parameters * fix(search-ranking.tsx): reduce the limit of fetched nodes from 30 to 24 to optimize performance and improve user experience * feat(hooks): add useRouterQuery hook to manage URL query parameters easily This hook simplifies accessing and updating URL query parameters, allowing for better state management in components. It provides functions to update, replace, and remove query parameters while preserving existing ones. * refactor(search-ranking.tsx): simplify query parameter handling by using a custom hook to manage router queries fix(search-ranking.tsx): update search input handling to use defaultValue instead of value for better form behavior * format: Apply prettier --fix changes * feat(admin/index.tsx): enhance AdminDashboard by adding an icon and renaming button for clarity refactor(admin/index.tsx): move export statement for AdminDashboard to the top for better readability * format: Apply prettier --fix changes * style(admin/index.tsx): update button layout and styling for better responsiveness and visual consistency * feat(SearchRankingEditModal): add quickMode prop to optimize user experience by closing modal immediately after update refactor(SearchRankingEditModal): improve cache management by optimistically updating search ranking and invalidating queries after mutation * Fix auth redirects. (#113) * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * Fix UI Icons (#114) * style(NodeEditModal.tsx): comment out the "Upload Logo" text to improve UI clarity without removing the code * feat(NodeDetails.tsx): add MdOpenInNew icon to enhance the repository link with a visual indicator for opening in a new tab * Allow admin to edit preempted comfy node names (#116) * docs(README): add instructions for enabling CORS on Google Cloud Storage bucket to improve deployment documentation * feat(NodeDetails.tsx): add Preemptive Names management section with modal for editing preemptive names feat(PreemptiveNamesEditModal.tsx): create modal component for editing preemptive names with optimistic UI updates feat(preemptive-names.tsx): add admin page for managing preemptive names with search and pagination feat(index.tsx): add button for navigating to Preemptive Names Management page in admin dashboard * fix(NodeDetails): update defaultPreemptiveNames to use preempted_comfy_node_names for better accuracy in data representation * feat(NodeDetails.tsx): rename PreemptiveNamesEditModal to PreemptedComfyNodeNamesEditModal for clarity feat(PreemptedComfyNodeNamesEditModal.tsx): add new modal component for managing preempted comfy node names feat(preempted-comfy-node-names.tsx): create new admin page for managing preempted comfy node names fix(admin/index.tsx): update button navigation and label for preemptive names management to reflect new terminology * format: Apply prettier --fix changes * fix(NodeDetails.tsx): update display of preempted comfy node names to improve readability by using a preformatted text block and changing the label to "Preempted Names" * chore(NodeDetails.tsx): remove duplicate import of PreemptedComfyNodeNamesEditModal to clean up the code style(NodeDetails.tsx): format code for better readability in the preempted names display logic * [fix] send complete node objects in admin update API calls (#119) * [fix] send complete node objects in admin update API calls Fixes 500 internal server errors when updating search_ranking and preempted_comfy_node_names. The generated API client expects the full Node object, not partial updates. * format: Apply prettier --fix changes * fix(NodeStatusReason): display message if code_snippet is not availab… (#120) * fix(NodeStatusReason): display message if code_snippet is not available to enhance user feedback * feat(NodeStatusReason.tsx): add optional message field to zErrorArray for enhanced error reporting * feat(global.d.ts): add TypeScript declaration for importing SVG files to enable proper type checking and module resolution for SVG assets (#109) * Optimize node-details buttons layout (#117) * refactor(NodeDetails.tsx): reorganize Search Ranking and Preempted Names sections for better layout and consistency style(NodeDetails.tsx): adjust button margin and icon size for improved UI appearance * feat(NodeDetails): add button to download the latest node version with analytics tracking for user interaction refactor(NodeDetails): remove duplicate download button code for cleaner structure and maintainability * feat(stories): add NodeDetails component stories for Storybook to showcase different states and configurations of the component feat(stories): create NodeDetailsStory component to provide a simplified version for Storybook without Next.js dependencies * format: Apply prettier --fix changes * feat(NodeDetails.stories.tsx): enhance NodeDetails stories with mocks for better testing and visualization refactor(NodeDetails.stories.tsx): restructure story setup to include query client and mock data for improved clarity and maintainability * feat(stories): add NodeDetails component stories with mock data for testing and demonstration purposes * Revert "Use new Algolia proxy (#91)" (#121) This reverts commit c36a6d4. * Enable unit tests CICD (#115) * fix(batchUtils.ts): enhance generateBatchId function to include a random string in the timestamp for improved uniqueness of batch IDs * feat(package.json): add test script to run tests with coverage using bun * feat(ci): add GitHub Actions workflow for Chromatic Visual Testing to automate visual regression testing on push and pull request events * chore(package.json): remove unused senv commands and dependency to clean up the project configuration (#106) * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them (#124) fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * Sno unlock persist storage (#123) * refactor(app.tsx): remove dehydrateOptions for query persistence to simplify code and improve maintainability * feat(_app.tsx): add build versioning using NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA to manage cache invalidation effectively * feat(_app.tsx): add maxAge option to cache configuration to set cache duration to 1 day for improved performance and cache management * chore(axios-instance.ts): remove Firebase authentication interceptor to simplify Axios instance configuration and reduce dependencies * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(_app.tsx): add Firebase JWT token interceptor to Axios instance for authenticated requests refactor(_app.tsx): improve persistEffect function structure for better readability and maintainability * docs(_app.tsx): add comments explaining the usage of NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA for cache busting and fallback behavior * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * fix(NodeDetails.tsx): refactor repository button to use onClick instead of anchor tag for better event handling feat(NodeDetails.tsx): prevent default action and open repository link in a new tab for improved user experience * style(NodeDetails.tsx): replace span with div for better semantic structure and accessibility in version changelog display * Squashed commit of the following: commit d75737c Author: snomiao <[email protected]> Date: Tue Jun 3 13:12:21 2025 +0900 Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> commit 6afd1f0 Author: snomiao <[email protected]> Date: Tue Jun 3 13:05:42 2025 +0900 chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(api-gen.yml): remove unnecessary blank line to improve workflow file readability * chore(_app.tsx): remove commented-out code for user data persistence to clean up the codebase and improve readability * docs(_app.tsx): update comment to clarify the purpose of query persistence in localStorage for better understanding * format: Apply prettier --fix changes * docs(_app.tsx): add comments to clarify the purpose of persistQueryClient and buster configuration for better understanding of the code * format: Apply prettier --fix changes * chore(tailwind.config.cjs): remove deprecated color names from Tailwind colors to streamline configuration and avoid unnecessary imports (#126) * Fix: Remove legacyBehavior from Link components (#127) * Fix: Remove legacyBehavior from Link components * refactor(SearchHit.tsx): simplify JSX structure by removing unnecessary anchor tag and using React fragments for cleaner code * format: Apply prettier --fix changes * Add breadcrumb navigation (#125) * Add breadcrumb navigation to all admin pages * Update components/common/Breadcrumb.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes * Add breadcrumbs to all pages using Flowbite Breadcrumb component * Fix import order and formatting in breadcrumb components * Replace Button components with Link components in admin dashboard for better accessibility * Fix build errors: update component naming convention and string template usage * Update breadcrumbs: rename to 'Your Nodes', make 'Nodes' non-clickable in node detail page, simplify publisher breadcrumbs * style(admin): add "dark" class to Breadcrumb.Item components for consistent styling across admin pages style(pages): apply "dark" class to Breadcrumb.Item components for improved visual consistency in navigation elements * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes --------- Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]> Co-authored-by: Copilot <[email protected]>
snomiao
added a commit
that referenced
this pull request
Jul 10, 2025
#90) * feat(claim-node): implement node claiming functionality for publishers - Add a new route for GitHub OAuth device flow to facilitate node claiming. - Create ClaimNodePage for users to select a publisher and claim a node. - Implement ClaimMyNodePage for verifying GitHub repository ownership. - Introduce custom hooks for claiming nodes via API. - Enhance NodeDetails component to allow users to claim unclaimed nodes. - Ensure proper loading states and error handling during the claiming process. * fix(orval.config.js): update API target URL to use environment variable for better configurability * style(orval.config.js): format target URL assignment for better readability by breaking it into multiple lines * refactor(claim.tsx): clean up code formatting and improve readability by adjusting spacing and line breaks feat(claim.tsx): wrap ClaimNodePage component with withAuth for authentication protection * feat(generated.ts): update orval version to 7.10.0 and add new properties to Customer and Node interfaces to enhance API functionality feat(generated.ts): add claimMyNode endpoint to allow publishers to claim unclaimed nodes they own, improving node management capabilities * feat(package.json): add @tsconfig/next package for improved TypeScript support with Next.js chore(tsconfig.json): update tsconfig structure and include next-env.d.ts for better type definitions in Next.js projects * refactor(NodeDetails.tsx): remove unused router and query variables to clean up code and improve readability * feat(auth): implement GitHub OAuth flow for repository verification with new endpoints and callback handling refactor(claim): replace custom hook for claiming nodes with generated API hook for improved functionality delete(api): remove outdated GitHub device flow endpoint and related custom hooks to streamline codebase * feat(env): add GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET to .env for GitHub OAuth integration feat(github callback): update redirect logic to handle query parameters correctly for error and token feat(github route): allow custom scope for GitHub OAuth and improve redirect URL construction feat(CreatePublisherForm): add onSuccess and onCancel props for better handling of publisher creation feat(CreatePublisherModal): create a modal component for publisher creation feat(ClaimMyNodePage): implement GitHub verification process for claiming nodes refactor(ClaimMyNodePage): streamline state management and error handling during the claiming process chore(package): add octokit dependency for GitHub API interactions delete(publishers claim-my-node page): remove old claim my node page in favor of the new implementation * feat(Spans): add GithubUserSpan, NodeSpan, and PublisherSpan components for displaying user, node, and publisher information with tooltips and click navigation feat(claim-my-node): integrate new span components into ClaimMyNodePage for improved user experience and navigation to GitHub profiles and node/publisher details * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them (#124) fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * Sno unlock persist storage (#123) * refactor(app.tsx): remove dehydrateOptions for query persistence to simplify code and improve maintainability * feat(_app.tsx): add build versioning using NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA to manage cache invalidation effectively * feat(_app.tsx): add maxAge option to cache configuration to set cache duration to 1 day for improved performance and cache management * chore(axios-instance.ts): remove Firebase authentication interceptor to simplify Axios instance configuration and reduce dependencies * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(_app.tsx): add Firebase JWT token interceptor to Axios instance for authenticated requests refactor(_app.tsx): improve persistEffect function structure for better readability and maintainability * docs(_app.tsx): add comments explaining the usage of NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA for cache busting and fallback behavior * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * fix(NodeDetails.tsx): refactor repository button to use onClick instead of anchor tag for better event handling feat(NodeDetails.tsx): prevent default action and open repository link in a new tab for improved user experience * style(NodeDetails.tsx): replace span with div for better semantic structure and accessibility in version changelog display * Squashed commit of the following: commit d75737c Author: snomiao <[email protected]> Date: Tue Jun 3 13:12:21 2025 +0900 Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> commit 6afd1f0 Author: snomiao <[email protected]> Date: Tue Jun 3 13:05:42 2025 +0900 chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(api-gen.yml): remove unnecessary blank line to improve workflow file readability * chore(_app.tsx): remove commented-out code for user data persistence to clean up the codebase and improve readability * docs(_app.tsx): update comment to clarify the purpose of query persistence in localStorage for better understanding * format: Apply prettier --fix changes * docs(_app.tsx): add comments to clarify the purpose of persistQueryClient and buster configuration for better understanding of the code * format: Apply prettier --fix changes * chore(tailwind.config.cjs): remove deprecated color names from Tailwind colors to streamline configuration and avoid unnecessary imports (#126) * Fix: Remove legacyBehavior from Link components (#127) * Fix: Remove legacyBehavior from Link components * refactor(SearchHit.tsx): simplify JSX structure by removing unnecessary anchor tag and using React fragments for cleaner code * format: Apply prettier --fix changes * Add breadcrumb navigation (#125) * Add breadcrumb navigation to all admin pages * Update components/common/Breadcrumb.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes * Add breadcrumbs to all pages using Flowbite Breadcrumb component * Fix import order and formatting in breadcrumb components * Replace Button components with Link components in admin dashboard for better accessibility * Fix build errors: update component naming convention and string template usage * Update breadcrumbs: rename to 'Your Nodes', make 'Nodes' non-clickable in node detail page, simplify publisher breadcrumbs * style(admin): add "dark" class to Breadcrumb.Item components for consistent styling across admin pages style(pages): apply "dark" class to Breadcrumb.Item components for improved visual consistency in navigation elements * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> * Unpatch queryForNodeId (#89) * fix(sno-unpatch-queryForNodeId): done done * format: Apply prettier --fix changes * fix(sno-show-ops-only-flagged-node): done (#88) * fix(sno-show-ops-only-flagged-node): done done * show ops only pending/flagged/active/banned nodes * chore(sno-use-bun): replace pnpm with bun (#70) * fix(sno-use-bun): use bun and upgrade use bun and upgrade * chore(sno-use-bun): replace pnpm with bun replace pnpm with bun * chore(vercel.json): use bun install use bun install * fix: remove outdated swcMinify * fix: use <Image/> * fix: add dependencies for useHook * fix(tsconfig): update update * fix(pkg): downgrade react-icons to 5.4.0 for downgrade react-icons to 5.4.0 for compability * format: Apply prettier --fix changes * Chore: setup storybook and chromatic for visual testing (#76) * fix(sno-storybook): storybook init storybook init * fix: preview ok * fix: preview ok * fix(sno-storybook): init init * fix(type): searchhit type searchhit type * fix(storybook): build build * fix(sno-storybook): remove jest.mock for now as chromat remove jest.mock for now as chromatic seems not supporting it * fix all stories * chore: setup chromatic CICD * fix(sno-storybook): test ui change test ui change * fix(lint): quot problem quot problem * chore(chromatic): change setup node to pnpm change setup node to pnpm * fix(sno-storybook): remove example stories remove example stories * chore(workflow): format format * format: Apply prettier --fix changes * chore(chromatic): leave comment leave comment * chore(chromatic): leave comment leave comment * format: Apply prettier --fix changes * fix(sno-use-bun): sort pkg sort pkg * fix(chromatic-actions): use bun use bun * [fix] resolve duplicate publishers path in navigation (#94) Convert relative paths to absolute paths in PublisherNodes component to prevent URL duplication when navigating from publishers page to node details. * chore(package.json): update dependencies and devDependencies to latest versions for improved stability and features (#96) * feat(NodeDetails): add NodeVersionStatusBadge component to display ve… (#97) * feat(NodeDetails): add NodeVersionStatusBadge component to display version status for better user feedback * feat(NodeDetails): move NodeVersionStatusBadge inside the version header to improve UI layout and readability * fix(NodeDetails.tsx): conditionally render NodeVersionStatusBadge based on canEdit to improve UI logic * feat(NodeVDrawer): add status message display for banned node versions to improve user feedback refactor(NodeVDrawer): reorganize imports and clean up commented code for better readability and maintainability * feat(NodeDetails): refactor user permissions logic for better readability and maintainability style(NodeVDrawer): remove unnecessary line breaks for cleaner code formatting * format: Apply prettier --fix changes * style(NodeDetails.tsx): add flex and gap classes to the version header for improved layout and spacing * style(NodeDetails.tsx): adjust layout of version status badge for better alignment and readability * refactor(NodeVersionStatusBadge): simplify status badge rendering logic using a status map for better maintainability and readability * format: Apply prettier --fix changes * Revert "feat(NodeDetails): add NodeVersionStatusBadge component to display ve…" (#99) This reverts commit d0821aa. * Use new Algolia proxy (#91) * Use Algoliasearch v5 * format: Apply prettier --fix changes * Use env again * format: Apply prettier --fix changes * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(tailwind.config.cjs): remove deprecated color names and use saf… (#108) * chore(tailwind.config.cjs): remove deprecated color names and use safeColors to ensure compatibility with future Tailwind versions * format: Apply prettier --fix changes * chore(tailwind.config.cjs): restore type annotation for Tailwind CSS configuration for better type safety and clarity * feat(MailtoNodeVersionModal): add modal for contacting node version p… (#95) * feat(MailtoNodeVersionModal): add modal for contacting node version publisher via GitHub or email feat(nodeversions): integrate MailtoNodeVersionModal to allow users to contact publishers directly from the node version list * style(MailtoNodeVersionModal.tsx): format JSX by removing unnecessary whitespace for consistency chore(nodeversions.tsx): move mailtoNv state declaration to the correct position for better readability and organization * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(nodeversions.tsx): update import path for MailtoNodeVersionModal to reflect new directory structure * feat(MailtoNodeVersionModal): add MailtoNodeVersionModal component to facilitate contacting publishers via GitHub and email refactor(nodeversions.tsx): update import statement for MailtoNodeVersionModal and improve loading state handling * fix(NodeVersionStatusBadge): update badge text from "Banned" to "Rejected" for clarity and accuracy * refactor(NodeDetails.tsx): simplify user permission checks by consolidating logic for better readability and maintainability * feat(MailtoNodeVersionModal): refactor modal to improve email and GitHub issue links and add loading states refactor(NodeVersionList): simplify button rendering logic and improve layout for better readability * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * Update pages/admin/nodeversions.tsx Co-authored-by: Copilot <[email protected]> * chore(nodeversions.tsx): remove duplicate import of MailtoNodeVersionModal to clean up code and avoid redundancy * refactor(MailtoNodeVersionModal.tsx): simplify email filtering and mapping logic for better readability and performance --------- Co-authored-by: Copilot <[email protected]> * Admin Claim Node Page (#107) * feat(claim-nodes): add ClaimNodesPage for managing unclaimed nodes in admin panel This new page allows administrators to view, add, and manage unclaimed nodes. It includes pagination and error handling for better user experience. * fix(claim-nodes.tsx): move export default statement to the top for better readability and consistency style(claim-nodes.tsx): remove unnecessary whitespace to maintain code cleanliness * feat(claim-nodes.tsx): add icons to buttons for better user experience and visual clarity * feat(admin/index.tsx): update admin dashboard buttons to improve functionality and UI - Change "Add Unclaimed Node" button to "Manage Unclaimed Nodes" for clarity. - Update button action to navigate to the new route for managing unclaimed nodes. - Add icons to buttons for better visual representation and user experience. * feat(AdminCreateNodeFormModal): add HiPlus icon to the Add button for improved UI clarity * refactor(NodesCard.tsx): simplify Link component usage by removing unnecessary nested anchor tag for cleaner code and improved readability * feat(claim-nodes.tsx): add Breadcrumb component for better navigation and improve UI structure style(claim-nodes.tsx): format code for better readability and consistency * feat(admin/index.tsx): add Breadcrumb component to Admin Dashboard for better navigation context * feat(nodeversions.tsx): add Breadcrumb component for better navigation in the admin panel to enhance user experience and provide clear context * fix(AdminCreateNodeFormModal): re-enable toast notifications for better user feedback fix(AdminCreateNodeFormModal): set dismissible prop to false to prevent modal from being dismissed unintentionally * feat(add-unclaimed-node.tsx): add breadcrumb navigation to enhance user experience and improve page context * format: Apply prettier --fix changes * refactor(claim-nodes.tsx): replace useSearchNodes with useListNodesForPublisherV2 for improved data fetching and clarity fix(claim-nodes.tsx): update error handling to use isError instead of error for better consistency in state management * feat(PublisherId): add PublisherId component to display publisher ID or unclaimed status This component conditionally renders the publisher ID or a message indicating that the publisher is unclaimed, enhancing the user interface by providing clear information about the publisher's status. * refactor(SearchHit.tsx): replace hardcoded publisher ID check with PublisherId component for better readability and maintainability * feat(NodeClaimModal): add a modal for claiming nodes with publisher verification functionality feat(UnclaimedNodeCard): create a card component for unclaimed nodes with edit functionality refactor(claim-nodes): replace NodesCard with UnclaimedNodeCard for better modularity and functionality chore(claim-nodes): increase page size for node listing to improve user experience * refactor(NodeClaimModal): remove onSuccess prop to simplify component interface and improve clarity refactor(UnclaimedNodeCard): remove onNodeClaimed prop as it is no longer needed in NodeClaimModal * fix(NodeClaimModal): simplify data object structure in updateNodeMutation call for better readability docs(NodeClaimModal): add note about backend API support for claiming nodes and mark feature as WIP style(NodeClaimModal): update button label to indicate that claiming a node is a work in progress * feat(NodeClaimModal): add onSuccess callback prop to handle successful claims feat(UnclaimedNodeCard): pass onSuccess prop to NodeClaimModal for better claim handling fix(ClaimNodesPage): invalidate node list query after a successful claim to ensure data consistency * chore(NodeClaimModal.tsx): remove console.error statements to clean up error handling and improve user feedback with toast notifications * format: Apply prettier --fix changes * Search Rank Level (#105) * feat(admin): add Search Ranking button to Admin Dashboard for easier navigation to search ranking page * feat(NodeDetails): add search ranking edit functionality for admin users to manage node search ranking refactor(NodeDetails): improve code readability by using consistent variable naming and removing unnecessary type assertions * refactor(NodeDetails.tsx): remove unused getGetNodeQueryKey import and clean up code by removing commented-out SearchRankingEditModal component fix(NodeDetails.tsx): update Edit Search Ranking button to include mode parameter in URL and ensure versionNumber is a string * feat(NodeDetails): add SearchRankingEditModal for editing search ranking of nodes feat(SearchRankingEditModal): create modal component for updating search ranking with validation and API integration * format: Apply prettier --fix changes * format: Apply prettier --fix changes * feat(NodeDetails.tsx): enhance admin functionality by adding search ranking display and edit option style(NodeDetails.tsx): improve layout and semantics with Label component for search ranking * feat(SearchRankingEditModal): refactor modal to use form submission for search ranking updates This change improves the user experience by allowing the form to be submitted via the Enter key and ensures proper handling of the form submission event. * feat(search-ranking.tsx): add Search Ranking Management page for admin to manage nodes and their search rankings This page allows admins to search, view, and edit the search rankings of nodes, enhancing the management capabilities of the application. * refactor(search-ranking.tsx): reorganize imports and improve code readability by removing unnecessary whitespace and aligning code structure feat(search-ranking.tsx): update pagination and search functionality to use new API methods and improve user experience with query parameters * fix(search-ranking.tsx): reduce the limit of fetched nodes from 30 to 24 to optimize performance and improve user experience * feat(hooks): add useRouterQuery hook to manage URL query parameters easily This hook simplifies accessing and updating URL query parameters, allowing for better state management in components. It provides functions to update, replace, and remove query parameters while preserving existing ones. * refactor(search-ranking.tsx): simplify query parameter handling by using a custom hook to manage router queries fix(search-ranking.tsx): update search input handling to use defaultValue instead of value for better form behavior * format: Apply prettier --fix changes * feat(admin/index.tsx): enhance AdminDashboard by adding an icon and renaming button for clarity refactor(admin/index.tsx): move export statement for AdminDashboard to the top for better readability * format: Apply prettier --fix changes * style(admin/index.tsx): update button layout and styling for better responsiveness and visual consistency * feat(SearchRankingEditModal): add quickMode prop to optimize user experience by closing modal immediately after update refactor(SearchRankingEditModal): improve cache management by optimistically updating search ranking and invalidating queries after mutation * Fix auth redirects. (#113) * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * Fix UI Icons (#114) * style(NodeEditModal.tsx): comment out the "Upload Logo" text to improve UI clarity without removing the code * feat(NodeDetails.tsx): add MdOpenInNew icon to enhance the repository link with a visual indicator for opening in a new tab * Allow admin to edit preempted comfy node names (#116) * docs(README): add instructions for enabling CORS on Google Cloud Storage bucket to improve deployment documentation * feat(NodeDetails.tsx): add Preemptive Names management section with modal for editing preemptive names feat(PreemptiveNamesEditModal.tsx): create modal component for editing preemptive names with optimistic UI updates feat(preemptive-names.tsx): add admin page for managing preemptive names with search and pagination feat(index.tsx): add button for navigating to Preemptive Names Management page in admin dashboard * fix(NodeDetails): update defaultPreemptiveNames to use preempted_comfy_node_names for better accuracy in data representation * feat(NodeDetails.tsx): rename PreemptiveNamesEditModal to PreemptedComfyNodeNamesEditModal for clarity feat(PreemptedComfyNodeNamesEditModal.tsx): add new modal component for managing preempted comfy node names feat(preempted-comfy-node-names.tsx): create new admin page for managing preempted comfy node names fix(admin/index.tsx): update button navigation and label for preemptive names management to reflect new terminology * format: Apply prettier --fix changes * fix(NodeDetails.tsx): update display of preempted comfy node names to improve readability by using a preformatted text block and changing the label to "Preempted Names" * chore(NodeDetails.tsx): remove duplicate import of PreemptedComfyNodeNamesEditModal to clean up the code style(NodeDetails.tsx): format code for better readability in the preempted names display logic * [fix] send complete node objects in admin update API calls (#119) * [fix] send complete node objects in admin update API calls Fixes 500 internal server errors when updating search_ranking and preempted_comfy_node_names. The generated API client expects the full Node object, not partial updates. * format: Apply prettier --fix changes * fix(NodeStatusReason): display message if code_snippet is not availab… (#120) * fix(NodeStatusReason): display message if code_snippet is not available to enhance user feedback * feat(NodeStatusReason.tsx): add optional message field to zErrorArray for enhanced error reporting * feat(global.d.ts): add TypeScript declaration for importing SVG files to enable proper type checking and module resolution for SVG assets (#109) * Optimize node-details buttons layout (#117) * refactor(NodeDetails.tsx): reorganize Search Ranking and Preempted Names sections for better layout and consistency style(NodeDetails.tsx): adjust button margin and icon size for improved UI appearance * feat(NodeDetails): add button to download the latest node version with analytics tracking for user interaction refactor(NodeDetails): remove duplicate download button code for cleaner structure and maintainability * feat(stories): add NodeDetails component stories for Storybook to showcase different states and configurations of the component feat(stories): create NodeDetailsStory component to provide a simplified version for Storybook without Next.js dependencies * format: Apply prettier --fix changes * feat(NodeDetails.stories.tsx): enhance NodeDetails stories with mocks for better testing and visualization refactor(NodeDetails.stories.tsx): restructure story setup to include query client and mock data for improved clarity and maintainability * feat(stories): add NodeDetails component stories with mock data for testing and demonstration purposes * Revert "Use new Algolia proxy (#91)" (#121) This reverts commit c36a6d4. * Enable unit tests CICD (#115) * fix(batchUtils.ts): enhance generateBatchId function to include a random string in the timestamp for improved uniqueness of batch IDs * feat(package.json): add test script to run tests with coverage using bun * feat(ci): add GitHub Actions workflow for Chromatic Visual Testing to automate visual regression testing on push and pull request events * chore(package.json): remove unused senv commands and dependency to clean up the project configuration (#106) * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them (#124) fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * Sno unlock persist storage (#123) * refactor(app.tsx): remove dehydrateOptions for query persistence to simplify code and improve maintainability * feat(_app.tsx): add build versioning using NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA to manage cache invalidation effectively * feat(_app.tsx): add maxAge option to cache configuration to set cache duration to 1 day for improved performance and cache management * chore(axios-instance.ts): remove Firebase authentication interceptor to simplify Axios instance configuration and reduce dependencies * feat(NodeDetails): add useListPublishersForUser hook to check if admin can edit nodes owned by them fix(NodeDetails): update warningForAdminEdit logic to show warning if admin edits a node not owned by them * feat(AuthUI): integrate useAuthState to manage user authentication state and redirect users upon login refactor(Logout): simplify logout process by clearing query cache and storage before signing out refactor(Header): update login and signup button handlers to use router.push for better navigation refactor(ProfileDropdown): enhance sign-out functionality to clear user data from cache and storage fix(authAdmin): improve user redirection logic to handle authentication state more effectively feat(getFromUrlSearchParam): add utility function to retrieve the current URL for redirection purposes refactor(withAuth): streamline authentication check and loading state handling in HOC * feat(_app.tsx): add Firebase JWT token interceptor to Axios instance for authenticated requests refactor(_app.tsx): improve persistEffect function structure for better readability and maintainability * docs(_app.tsx): add comments explaining the usage of NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA for cache busting and fallback behavior * feat(AuthUI): replace div with Link component for logo navigation to improve accessibility and semantics * feat(Logout.tsx): refactor logout functionality into a custom hook for better reusability and separation of concerns fix(Logout.tsx): handle logout errors with toast notifications to improve user experience refactor(ProfileDropdown.tsx): utilize the new useLogout hook for sign-out functionality to streamline code and enhance maintainability * style(Header.tsx): change button color from light to dark for better visibility and consistency * format: Apply prettier --fix changes * fix(NodeDetails.tsx): refactor repository button to use onClick instead of anchor tag for better event handling feat(NodeDetails.tsx): prevent default action and open repository link in a new tab for improved user experience * style(NodeDetails.tsx): replace span with div for better semantic structure and accessibility in version changelog display * Squashed commit of the following: commit d75737c Author: snomiao <[email protected]> Date: Tue Jun 3 13:12:21 2025 +0900 Update OpenAPI (#102) * chore(api-gen): update cron schedule to run daily at midnight UTC for API type definitions chore(api-gen): refactor workflow steps to use bun for dependency management and API definition update chore(package): update orval dependency to version 7.9.0 for improved features and fixes refactor(orval.config.ts): adjust dotenv loading logic to be compatible with bun environment * chore: update lockfile * chore(package.json): update orval command to use bunx for better compatibility with package management * chore: generate backend API static type * Update orval.config.ts Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> commit 6afd1f0 Author: snomiao <[email protected]> Date: Tue Jun 3 13:05:42 2025 +0900 chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting (#103) * chore(ci): update CI workflow to use bunx for prettier and add sort-package-json step for better package.json formatting * Update .github/workflows/react-ci.yml Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * chore(api-gen.yml): remove unnecessary blank line to improve workflow file readability * chore(_app.tsx): remove commented-out code for user data persistence to clean up the codebase and improve readability * docs(_app.tsx): update comment to clarify the purpose of query persistence in localStorage for better understanding * format: Apply prettier --fix changes * docs(_app.tsx): add comments to clarify the purpose of persistQueryClient and buster configuration for better understanding of the code * format: Apply prettier --fix changes * chore(tailwind.config.cjs): remove deprecated color names from Tailwind colors to streamline configuration and avoid unnecessary imports (#126) * Fix: Remove legacyBehavior from Link components (#127) * Fix: Remove legacyBehavior from Link components * refactor(SearchHit.tsx): simplify JSX structure by removing unnecessary anchor tag and using React fragments for cleaner code * format: Apply prettier --fix changes * Add breadcrumb navigation (#125) * Add breadcrumb navigation to all admin pages * Update components/common/Breadcrumb.tsx Co-authored-by: Copilot <[email protected]> * format: Apply prettier --fix changes * Add breadcrumbs to all pages using Flowbite Breadcrumb component * Fix import order and formatting in breadcrumb components * Replace Button components with Link components in admin dashboard for better accessibility * Fix build errors: update component naming convention and string template usage * Update breadcrumbs: rename to 'Your Nodes', make 'Nodes' non-clickable in node detail page, simplify publisher breadcrumbs * style(admin): add "dark" class to Breadcrumb.Item components for consistent styling across admin pages style(pages): apply "dark" class to Breadcrumb.Item components for improved visual consistency in navigation elements * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]> Co-authored-by: Copilot <[email protected]> * Sno svg declaration (#130) * feat(global.d.ts): add TypeScript declaration for importing SVG files to enable proper type checking and module resolution for SVG assets * format: Apply prettier --fix changes * refactor: remove unused API endpoint for claiming nodes * style(route.ts): correct typo in comment from "OAuthj" to "OAuth" for clarity * chore(env): update comments in .env file for clarity on GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET usage * docs: add GitHub App setup documentation for Comfy Registry to guide users in creating and configuring the OAuth app * docs(github-app): update link to Vercel project settings for clarity on environment variable configuration * docs(README): add GitHub OAuth App setup instructions for features requiring authentication * chore(CreatePublisherModal.tsx): add TypeScript ignore comment for theme prop to suppress type checking error * format: Apply prettier --fix changes * feat: complete i18n coverage for claim-my-node feature - Add useNextTranslation to all user-facing components - Translate hardcoded strings in CreatePublisherModal - Translate NodeClaimModal error messages and UI text - Complete translation of claim-my-node page with step indicators - Translate node claim selection page with publisher options - Ensure all toast messages, form labels, and status text use t() - Maintain translation key consistency with existing patterns * format: Apply prettier --fix changes * Merge branch 'main' of github.com:Comfy-Org/registry-web into sno-claim-my-nodeg * chore: update i18n translations for claim-my-node feature - Add Spanish, French, Korean, and Russian translations for claim node functionality - Update scan-i18n.ts script to include new translation keys - Update constants.ts for improved i18n support 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: replace NodeClaimModal with AdminNodeClaimModal - Delete NodeClaimModal.tsx component - Add AdminNodeClaimModal.tsx with enhanced admin functionality - Update UnclaimedNodeCard to use AdminNodeClaimModal - Maintain claim-my-node feature functionality with improved admin interface 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat(AdminNodeClaimModal): update modal header text and enhance node details display for better user experience * feat(claim-my-node.tsx): enhance node claiming process with query invalidation and improved error handling - Add query invalidation for node data and related lists after claiming a node to ensure fresh data. - Implement detailed error handling to provide users with specific error messages during the claiming process. - Replace SVG icons with React icons for better maintainability and consistency in the UI. - Refactor publisher rendering logic to improve readability and maintainability. * chore(.gitignore): add core file to .gitignore to prevent core dumps from being tracked * feat(AdminNodeClaimModal): add query invalidation for cache-busting after node claim to ensure data consistency and freshness in the UI * fix(claim-my-node.tsx): add cache-busting to query invalidation for immediate data refresh refactor(claim-my-node.tsx): improve comments for clarity on cache invalidation purpose * feat(_app.tsx): add staleTime and gcTime options to QueryClient for improved data fetching behavior * docs: add comprehensive documentation for API architecture, authentication system, caching strategy, and React Query integration to improve developer understanding and onboarding * format: Apply prettier --fix changes * docs(scan-i18n.ts): improve comments to clarify the handling of merge conflicts and JSON parsing errors for better code understanding * feat(claim-my-node): add CacheWaitingTimer component to display cache refresh countdown after claiming a node fix(claim-my-node): set claim completion time and reset it on error to manage state effectively * format: Apply prettier --fix changes * fix(scan-i18n.ts): write to JSON file immediately after updating translations to prevent data loss in case of script failure * fix(useSearchParameter.ts): update router query assignment to use Object.assign for better immutability and to ensure immediate updates * refactor(claim-my-node.tsx): improve code readability by formatting and renaming components for clarity fix(claim-my-node.tsx): deprecate CacheWaitingTimer and replace it with ClaimMyNodeCompleteStageWaitingForCacheInvalidationTimer for better semantic meaning * format: Apply prettier --fix changes * fix(storybook): solve dev rendering issue * feat(ClaimMyNodeCompleteStageWaitingForCacheInvalidationTimer): add countdown timer component for cache refresh after node ownership changes chore(ClaimMyNodePage): replace inline countdown timer implementation with the new component to improve code organization and maintainability * chore(globals.css): remove duplicate font import and move it to the top for better organization * format: Apply prettier --fix changes * fix(auth/github/route.ts): update host definition to use dynamic frontend host for better flexibility in deployment environments * format: Apply prettier --fix changes * docs(github-app): remove trailing slash from Homepage URL for clarity in local development instructions * docs(github-app): update homepage URL by removing trailing slash for consistency and correctness * chore(NodeDetails.tsx): add TODO comment to change button to a small hint for better user guidance style(NodeDetails.tsx): format code for better readability and consistency in the preempted node names section * chore(NodeDetails.tsx): update TODO comment to clarify button functionality and repositioning for better UI organization * docs(github-app): clarify homepage URL format by specifying no trailing slash for both production and local development settings * format: Apply prettier --fix changes * feat(NodeDetails): add redirect logic to handle publisherId changes and prevent incorrect rendering during node claims * fix(claim-my-node.tsx): replace hardcoded error messages with translation function to support internationalization style(claim-my-node.tsx): format code for better readability and maintainability * fix(claim-my-node.tsx): update error message to use translation function for better internationalization support style(claim-my-node.tsx): refactor conditional rendering logic for improved readability and maintainability * refactor(NodeDetails.tsx): simplify publisherId mismatch check and improve readability by moving logic to a variable * format: Apply prettier --fix changes * feat(claim-my-node): enhance GitHub verification process with structured error handling and improved user feedback - Update state management for GitHub username and user ID to use `undefined` instead of 'unknown' for better clarity. - Refactor `verifyRepoPermissions` function to return structured error information, including user info and error messages. - Improve user feedback messages in the UI to provide clearer instructions and error handling during the claiming process. - Add new translations for various user messages related to claiming nodes and GitHub verification in multiple languages. * feat(github route): add environment variable checks for production to ensure GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET are set * feat(package.json): add phpdie package to enhance PHP-related functionality in the project * fix(auth/github/route.ts): update environment variable check to ensure VERCEL_URL is set for production environment to improve deployment reliability * format: Apply prettier --fix changes * chore(route.ts): remove commented-out code and update frontendHost assignment for clarity * refactor(auth/github/route.ts): rename frontendHost to xfh and add xfp for better clarity in handling headers fix(auth/github/route.ts): update origin construction to use xfp and xfh for improved protocol and host handling * Remove GitHub user ID references - use unique username only - Removed githubUserId state variable and related code - Updated verifyRepoPermissions function to only use username - Simplified error messages to show only GitHub username - Cleaned up analytics tracking to remove userId references - GitHub username (login) is unique and sufficient for identification * format: Apply prettier --fix changes * refactor(claim-my-node.tsx): remove unused import and clean up code for better readability and maintainability fix(claim-my-node.tsx): prevent unnecessary execution of effect when current stage is completed to optimize performance * remove cache invalidation timer * format: Apply prettier --fix changes --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Christian Byrne <[email protected]> Co-authored-by: Benjamin Lu <[email protected]> Co-authored-by: Claude <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
before: all nodeversions can be approve/reject. *Approve a Pending Node by mistake is possible
after: only flagged nodeversions can be approve/reject => Active/Banned