selection function

  1. @Riverpod(dependencies: [Node])
Selection? selection(
  1. Ref ref,
  2. String id
)

Implementation

@Riverpod(dependencies: [Node])
Selection? selection(Ref ref, String id) {
  final node = ref.watch(nodeProvider(id));
  if (node == null) return null;

  switch (node.data.data) {
    case ComponentNode data:
      return StorySelection(
        data.component,
        data.component.stories.first,
      );

    case StoryNode data:
      return StorySelection(
        data.component,
        data.story,
      );

    case DocumentationNode data:
      return DocumentSelection(
        data.component,
        data.document,
      );

    default:
      return null;
  }
}