Conversation
- Introduced TimeSlider component with playback controls and speed adjustment. - Added CSS styles for TimeSlider layout and controls. - Integrated TimeSlider into DataStreamView for enhanced user interaction. - Updated Timeseries store to manage playback state and current time index. - Included deck.gl library for potential future visualizations.
…andling and visualization options
…ion and visualization - Implemented DataMenu component to facilitate step-by-step selection of model, date, forecast, cycle, ensemble, VPU, and output file. - Created TimeSeries component to manage time series data loading and visualization. - Enhanced S3 utility functions to support fetching options from S3 based on selected parameters. - Updated Datastream store to correct state management for date and ensemble. - Added loading indicators and error handling for improved user experience during data fetching.
…o-advance dropdowns
…tion and data handling
…ng selection logic
…selection and improve data handling
…mprove state management
- Removed the DataMenu component and its associated logic from ts.js. - Updated Mapg.js to integrate new S3 data management and removed unused variables. - Modified ForecastMenu.js to streamline feature ID handling and improve state management. - Cleaned up data.js by removing hardcoded model, forecast, cycle, and ensemble lists. - Adjusted opfsCache.js to ensure cache key generation is consistent. - Enhanced queryData.js to improve data fetching and logging. - Updated s3Utils.js to refine prefix generation and added initialS3Data function for better data initialization. - Refactored Datastream.js and Timeseries.js stores to remove unnecessary state variables and improve clarity. - Introduced s3Store.js to manage S3-related state and data fetching more effectively.
… improved data handling
…d remove unused code - Removed unused loading state handlers and variables in DataMenu, Mapg, SearchBar, and ForecastMenu components. - Consolidated loading text management in DataMenu and Mapg components. - Updated DataStreamView to fetch initial data and handle loading states more effectively. - Cleaned up commented-out code for better readability and maintainability. - Enhanced error handling and user feedback during data loading processes.
…g state management
…g, and SearchBar components
…g consistency and variable usage
…n Layers and Map components
… and improve playSpeed setting
…nditions in DataStreamView
…onversion logic in layers
…g logic in MainMap
…y optimizing state management and memoization
…ing zustand's subscribeWithSelector for improved performance
…and's shallow for improved performance and readability
- Introduced a new `MenuList` component using `react-window` for optimized rendering of options in the select dropdown. - Updated `SelectComponent` to utilize the new `MenuList` for better performance. - Refactored `DataMenu` to separate loading and control logic into distinct components for clarity and maintainability. - Enhanced state management in `DataMenu` with shallow comparisons to prevent unnecessary re-renders. - Replaced the old `DataMenu` with a new version (`dataMenu3`) in `ForecastMenu` for improved functionality. - Cleaned up unused imports and optimized existing code for better readability and performance.
…omponents for improved performance and readability
…lacing setAllState with individual setters for improved clarity and performance
…for cleaner logic
… structure and state management in Plot, DataMenu, and DatastreamView components
…moization in various components
…ile size handling in loadVpuData function
…in various components
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
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 pull request introduces several improvements and optimizations to the frontend codebase, focusing on enhancing the user experience with select menus, updating styles, and improving development tooling. The most significant changes include refactoring the custom select menu for better performance, updating theme colors for improved accessibility, and adding new development dependencies.
Select Menu Performance and Usability Improvements
MenuListcomponent inSelectComponent.jsto useuseMemoandReact.memofor better performance and stability, and improved initial scroll offset calculation for selected items. The component now leveragesreact-windowmore efficiently for virtualized lists. [1] [2]MenuListcomponent inMenuList.jsfor use with react-select, usingreact-windowfor virtualization and optimizing re-renders with custom memoization logic.Styling and Theme Updates
App.scssfor both light and dark themes to improve readability and consistency. [1] [2]Development and Build Tooling
@welldone-software/why-did-you-renderas a development dependency and integrated it into the Babel configuration for enhanced React performance debugging. [1] [2]deck.glas a new dependency, preparing for advanced data visualization features.NODE_ENV = developmentin the development environment configuration for more predictable build behavior.Minor Content and Config Updates
DataInfoModelmodal for consistency in apostrophe usage.