-
-
Notifications
You must be signed in to change notification settings - Fork 25
App next v3 β Frontend Migration: Next.js Stack #366
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
Draft
HelderMendes
wants to merge
65
commits into
openml:master
Choose a base branch
from
HelderMendes:app-next-v3
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
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
β¦e side renders a single dataset's details
β¦lbacks and add GitHub/OpenML avatar domains to allowed images
β¦tAuth session when image is uploaded
β¦on mount, use Flask backend in dev, Vercel Blob in production, better error messages
β¦login) and Phase 2 (OAuth + Sign-up)
β¦en NumberOfClasses/Features/Instances are null
- Add data_id to search_fields with highest weight (5) for exact ID matches - Fix crash when NumberOfClasses/Features/Instances are null - Now supports searching datasets by ID (e.g., 47118)
- Remove data_id from search_fields (keyword field incompatible with multi_match) - Add ID detection logic in OpenMLSearchConnector - When search term is numeric, add exact term query with boost:100 - Supports data_id, task_id, flow_id, run_id based on index name - Fixes 400 Elasticsearch error when searching by ID
- Search results header shows 'Search results for "[term]" β X results found' - Displays on all search pages: Datasets, Tasks, Flows, Runs - Header search bar now syncs with URL query parameter (shows what you searched for) - Clear visual feedback improves search transparency - Consistent UX across all entity search pages
- Removed isSearchingRef and lastNavigatedQueryRef (causing sync issues) - URL sync only on pathname change (not every param change) - Auto-search compares debouncedSearchQuery directly with searchParams - Simpler logic = more reliable behavior - All searches now work: type + wait, type + Enter, consecutive searches
- Store current URL query in urlQueryRef - URL sync updates both state AND ref - Auto-search compares against ref (not searchParams) - Auto-search does NOT depend on searchParams (prevents loop) - Clean separation: sync listens to URL, auto-search listens to typing
- When already on /datasets and searching again, use router.replace() - router.replace() forces SearchProvider to re-initialize with new query - router.push() only used when navigating to different search page - This ensures search results actually update on consecutive searches
- Added justNavigatedRef flag to track when we initiated navigation - URL sync skips updating searchQuery if we just navigated - Prevents the cycle: type β navigate β sync resets input β can't type - Now you can continuously type and search works correctly
- Use setTimeout to delay resetting justNavigatedRef - Prevents sync from running before router operation completes - Flag stays true during the entire navigation cycle - Now typing actually triggers searches
- Removed urlQueryRef and justNavigatedRef (causing conflicts) - Use simple router.push() for all navigation - Let SearchProvider manage URL state (trackUrlState: true) - Direct comparison with searchParams for debounce check - Clean, simple logic like /users search that works
- Use lastUrlQueryRef to track what we last navigated to - URL sync only on pathname change (not every searchParams) - Auto-search compares against ref, NOT searchParams (breaks loop) - Update ref immediately before navigation - No jumping, no loops, clean behavior
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.
This PR contains the complete migration of the frontend based on the initial TODO list. The application is functionally stable.
### What's in it:
π Frontend Migration: Next.js Stack
This PR contains the complete migration of the frontend based on the initial TODO list. The application is functionally stable.
β What's Included:
New Stack: Full migration to Next.js in the app-next directory.
Status Logic: Default dataset view and sidebar counts are now filtered to "Active" by default.
Pagination: Implemented a UI warning and block at the 10,000-result limit to handle Elasticsearch deep pagination constraints.
UI Refinements
Require backend/database updates:
OAuth Support: Need backend endpoints for Google/GitHub ID mapping and nullable password logic.
Profile Avatars: Need a storage solution (S3/Filesystem) and a POST /api/v1/user/avatar endpoint.
Social Features (Likes and possibly notebooks): Requires a new likes table and endpoints to toggle likes and fetch user favorites.