Skip to content

Conversation

@akhil-ge0rge
Copy link
Contributor

@akhil-ge0rge akhil-ge0rge commented Jan 28, 2026

Description

This PR introduces support for stacSliverList by adding a new widget model and its corresponding parser.

Related Issues

Closes #415

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Code refactor
  • Build configuration change
  • Documentation
  • Chore

Summary by CodeRabbit

  • New Features

    • Added SliverList support to the JSON-driven UI, enabling efficient scrollable lists inside CustomScrollView with configurable keep-alives, repaint boundaries, semantic indexing, and index offsets.
  • Documentation

    • Added documentation page describing SliverList usage, properties, and a JSON example.
  • Examples

    • Added interactive gallery entry and JSON example showcasing a SliverList with sample list items.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds SliverList support across the codebase: a new StacSliverList core model with JSON (de)serialization, a parser and service registration, public exports, docs, and example JSON assets.

Changes

Cohort / File(s) Summary
Core Widget Model
packages/stac_core/lib/widgets/sliver_list/stac_sliver_list.dart, packages/stac_core/lib/widgets/sliver_list/stac_sliver_list.g.dart, packages/stac_core/lib/widgets/widgets.dart, packages/stac_core/lib/foundation/specifications/widget_type.dart
Adds StacSliverList model with JsonSerializable helpers; adds sliverList enum value to WidgetType; exports new widget from core barrel.
Parser & Service
packages/stac/lib/src/parsers/widgets/stac_sliver_list/stac_sliver_list_parser.dart, packages/stac/lib/src/parsers/widgets/widgets.dart, packages/stac/lib/src/framework/stac_service.dart
Adds StacSliverListParser, registers it in StacService, and exports parser from parser barrel (note: parser export appears added twice).
Docs & Examples
docs/docs.json, docs/widgets/sliver_list.mdx, examples/stac_gallery/assets/json/home_screen.json, examples/stac_gallery/assets/json/sliver_list_example.json
Adds documentation page, navigation entry, and example JSON demonstrating SliverList usage in a CustomScrollView / scaffold.

Sequence Diagram(s)

sequenceDiagram
    participant JSON as JSON Config
    participant Parser as StacSliverListParser
    participant Model as StacSliverList
    participant Framework as Flutter Framework
    participant Widget as SliverList Widget

    JSON->>Parser: getModel(json) / fromJson()
    Parser->>Model: StacSliverList.fromJson(json)
    Model-->>Parser: StacSliverList instance
    Parser->>Parser: parse(context, model)
    Parser->>Framework: children.parseList(context)
    Framework-->>Parser: List<Widget>
    Parser->>Widget: build SliverList(delegate: SliverChildListDelegate(children,...))
    Widget-->>Framework: rendered SliverList in CustomScrollView
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

feature

Suggested reviewers

  • Potatomonsta

Poem

🐰 I hopped through code to add a list so spry,
Slivers aligned beneath a scrolling sky,
JSON whispered children, parser hummed along,
Now SliverList dances—quick, neat, and strong! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: adding a stacSliverList widget, parser, example, and documentation.
Linked Issues check ✅ Passed The PR implements StacSliverList as required by issue #415, including the widget model, parser, and comprehensive documentation/examples.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing SliverList support; no out-of-scope modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@divyanshub024 divyanshub024 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution 🙌

@divyanshub024 divyanshub024 merged commit b07594e into StacDev:dev Jan 28, 2026
2 of 3 checks passed
@akhil-ge0rge akhil-ge0rge deleted the feat-sliver-list branch January 28, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: create StacWidget implementation of SliverList

2 participants