Skip to content
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

Remove layout service or make it more usable? #22

Open
rabisnaqvi opened this issue May 26, 2023 · 0 comments
Open

Remove layout service or make it more usable? #22

rabisnaqvi opened this issue May 26, 2023 · 0 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed question Further information is requested status: todo

Comments

@rabisnaqvi
Copy link
Owner

The Astral.layout namespace is the UI toolkit that is supposed to provide infrastructure for responsive and reactive UI development. Currently, it only supports responsive layouts in terms of window resizing and orientation change, via the Astral.layout.applyIf function. We want to look into some other features and utilities that we can provide in terms of UI development.
Some examples:

  • API and Fetch Management:
    • API Request Management: Create a mechanism to manage API requests, including handling request configurations (URL, method, headers, etc.), sending requests, and processing responses.
    • Caching: Implement a caching system to store API responses and avoid unnecessary network requests. The cache should support different caching strategies (e.g., time-based expiration, manual invalidation) and handle cache updates when data changes.
    • Query Management: Provide a way to define and manage queries. Allow developers to configure query parameters, such as endpoint URL, request method, query variables, and caching options.
    • Query Execution and Data Fetching: Execute queries and handle the data fetching process. This includes sending requests, managing loading states, and handling errors. Consider supporting features like automatic retries, request cancellation, and pagination.
    • Query Invalidation and Refetching: Allow developers to invalidate and refetch queries when necessary. This can be triggered by explicit user actions or external events, such as data updates from other parts of the application.
    • Query Result Management: Manage the results of queries, including storing and updating data received from API responses. Consider providing features like optimistic updates (updating local data before receiving the API response) and query result transformations.
    • Dependency Tracking: Track dependencies between queries to ensure proper synchronization and avoid redundant requests. If one query depends on the result of another, handle the resolution and update the process accordingly.
    • Query Observability and Event Handling: Enable developers to subscribe to query changes and receive notifications when the query result, loading state, or error status changes. This allows for real-time UI updates and error handling.
  • Lazy Loading
    • Components
    • Images
  • Internationalization
    • Building applications that support multiple languages and locales requires handling text translations, date and time formatting, and cultural variations. Providing internationalization (i18n) and localization (l10n) support simplifies this process.
  • Navigation and Routing
    • Navigating between different screens or views within a single-page application requires effective routing and navigation. A flexible and intuitive routing solution helps create smooth transitions, handle dynamic routes, and maintain consistent navigation states.

We need more ideas in terms of how we can make it more feature-rich so that Astral.layout becomes a central toolkit for UI development for non-framework applications.

@rabisnaqvi rabisnaqvi added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers question Further information is requested status: todo labels May 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed question Further information is requested status: todo
Development

No branches or pull requests

1 participant