zinc-collective / convene

An Operating System for the Solidarity Economy
https://convene.zinc.coop
Other
56 stars 19 forks source link

🌸 `DesignLibrary`: `NeighborhoodNavigation` #1381

Open zspencer opened 1 year ago

zspencer commented 1 year ago

OK, so I really like where @anaulin went with the Marketplace::ManageComponent, and I'm trying to imagine what something like that could look like for the entire application.

For a navigation hierarchy that looks something like this:

1. Neighborhood  # Maybe only if current_person.operator?
  a. People
  b. Spaces
2. [Space](edit_space_path(space)
  a. [Members](space_members_path(space))
    i. [Invitations](space_invitations_path(space))
    ii. Groups
  b. Utilities
    i. Stripe
    ii. GitHub
    iii. Add Utility
  c. Rooms
    i. Room A
      1. Marketplace
        a. Products
        b. Delivery Areas
        c. ...
      2. Add Furniture
    ii. Room B
      1. Journal

How far the navigation is expanded is determined by the particular page we're editing. For example:

Ideally, this will build on the sense of location that we've established with our horizontal breadcrumbs, but also provide affordances for navigating sideways and down

From a visual hierarchy perspective, my gut says that indenting deeper and deeper is not going to fly, but perhaps something where we use font weight and size to indicate how far they are from the "trunk" of their space.

Thoughts?

anaulin commented 1 year ago

My instinct would be to separate the "standard space bits" from the "furniture-specific bits".

So we would have a "Space editing" area that would let you deal with invites, rooms, space-wide utilities, etc. But when you go to want to edit or manage a particular piece of furniture, you would pop out into the "edit mode" for that particular piece of furniture, and out of the "Space editing" area. This way:

zspencer commented 1 year ago

I'm down with keeping the furniture / space distant for now; especially given the possibility of significant nesting (i.e. marketplaces#edit is the parent of marketplace::delivery_areas#(index,new, create, edit)