Skip to content
This repository was archived by the owner on Sep 27, 2025. It is now read-only.
This repository was archived by the owner on Sep 27, 2025. It is now read-only.

Refactor the CLI to use a presentation layer #95

Description

@carltonwhitehead

The CLI is meant to be a thin wrapper around the rest of the project. It currently has way too many non-reusable presentation concerns factored into it.

Refactor as many of them as possible to interact only with a presenter, model, and view instances. They generally should not interact with services directly.

The presenters are to use flows to support modern reactive UIs.

Activity

  1. carltonwhitehead commented on Jul 5, 2023

    @carltonwhitehead
    ContributorAuthor

    The render and render-text modules are becoming really Presentation layer concerned. Time for a rename.

    The PropertyRenderer and ViewRenderer can be renamed for simplicity to Adapter and View, respectively.

  2. changed the title [-]Consolidate the CLI view package into the render-text package[/-] [+]Refactor the CLI to use a presentation layer[/+] on Aug 4, 2023
  3. carltonwhitehead commented on May 21, 2024

    @carltonwhitehead
    ContributorAuthor

    The surface area of this work is huge. It affects practically every command already written. That's going to be a lot of repetitive, boring work to do, hard to gauge what is needed for other UIs, creating uncertainty around the goalposts for this ticket. This project is supposed to be fun to work on, not a soul-suck. Therefore I'm not going to do this all at once. Instead, I will do these one-by-one as opportunities for code reuse arise when developing UIs.

    If anyone wants to dip a toe into this project and help out in a meaningful way, add a comment here and/or reach me through another channel, and I'll be happy to go over the steps to do a small chunk of this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions