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

Publishing to IPNS should be in separate menu #16998

Closed
lidel opened this issue Jul 16, 2021 · 2 comments · Fixed by brave/brave-core#12160
Closed

Publishing to IPNS should be in separate menu #16998

lidel opened this issue Jul 16, 2021 · 2 comments · Fixed by brave/brave-core#12160

Comments

@lidel
Copy link

lidel commented Jul 16, 2021

UX Problem

There is confusing inconsistency in sharing menu.

By default, we show simple actions for sharing IPFS CIDs:

2021-07-16--15-28-44

Note there is no way to share over IPNS (which IMO is a bug, because self key is always present).

To enable IPNS sharing, one needs to go to settings and click on "Set up IPNS keys":

2021-07-16--15-29-14

You dont need to add any, just open it. There is self key by default.

After that, a confusing submenu is presented in the main menu:

1-2021-07-16--15-26-03

It has problematic UX → the most common use case (sharing static IPFS CID) is buried 2 levels deep, and users most likely will abandon interaction or pick IPNS without fully understanding it is mutable publishing.

Proposed fix

I believe submenu is too confusing.
Instead, we should have IPNS in the top menu:

IPFS → 
        Share local file using IPFS              (no submenu, instant action)
        Share local directory using IPFS         (no submenu, instant action)
        Publish local file under IPNS key      → (submenu key list)
        Publish local directory under IPNS key → (submenu with key list)
@stephendonner stephendonner added this to Untriaged in IPFS via automation Sep 1, 2021
@spylogsster spylogsster moved this from Untriaged to Backlog in IPFS Sep 20, 2021
@spylogsster spylogsster moved this from Backlog to In Progress in IPFS Feb 6, 2022
@lidel
Copy link
Author

lidel commented Feb 7, 2022

Update: we should go with a simplified menu that prioritizes sharing of immutable snapshots and hides IPNS options a bit.
We also should note that the data is "Imported" to IPFS before it can be "Shared".

Rationale: In most cases, IPNS is not what you want to do, and we should not overwhelm new users with too many options.
(unless you need a mutable pointer for things like updating website contents)

IPFS →
        Import and Share a File       (no submenu, instant action)
        Import and Share a Directory  (no submenu, instant action)
        Open Files                    (no submenu, opens http://localhost:485001/webui/#/files)
        Update IPNS
                             →
                                  With a File
                                  With a Directory
                                                   → ("Publish with IPNS key" submenu with key list)

This way user can Import and share files, and also has an option to get back to the Files screen with ease at any point.
IPNS is hidden is own submenu.

@stephendonner
Copy link

stephendonner commented Feb 11, 2022

Verified PASSED using

Brave 1.37.40 Chromium: 98.0.4758.87 (Official Build) nightly (x86_64)
Revision e4cd00f135fb4d8edc64c8aa6ecbe7cc79ebb3b2-refs/branch-heads/4758@{#1002}
OS macOS Version 11.6.1 (Build 20G224)

Case 1: publish with local node

  1. install 1.37.40
  2. launch Brave
  3. load ipns://ipfs.io
  4. click Use a Brave local IPFS node
  5. click the 3-dots menu
  6. click on Import and Share a File
  7. click on Import and Share a Directory
  8. click on Open Files
  9. click on Update IPNS -> With a File -> self {key}
    10.click on Update IPNS -> With a Directory -> self {key}

Import and Share (File, Directory)

file file directory directory
Screen Shot 2022-02-10 at 2 44 19 PM Screen Shot 2022-02-10 at 2 46 15 PM Screen Shot 2022-02-10 at 2 47 08 PM Screen Shot 2022-02-10 at 2 49 23 PM

Open Files

example example
Screen Shot 2022-02-10 at 4 52 02 PM Screen Shot 2022-02-10 at 4 51 49 PM

Update IPNS with (File, Directory)

file file directory directory
Screen Shot 2022-02-10 at 2 55 09 PM Screen Shot 2022-02-10 at 2 56 54 PM Screen Shot 2022-02-10 at 2 57 38 PM Screen Shot 2022-02-10 at 2 59 29 PM

Case Two: IPFS flyout menu

  1. install 1.37.40
  2. launch Brave
  3. click on the "hamburger" menu
  4. confirmed there is no IPFS flyout menu
  5. load brave://ipfs-internals/
  6. click Use a Brave local IPFS node
  7. open brave://settings/ipfs
  8. choose any one of the Ask, Gateway, Disabled options under Method to resolve IPFS resources
  9. click on the "hamburger" menu again
  10. confirm you now see the IPFS flyout menu item
default ask / gateway / disabled Brave-local IPFS node enabled
Screen Shot 2022-02-10 at 4 38 33 PM Screen Shot 2022-02-10 at 4 43 22 PM Screen Shot 2022-02-10 at 4 43 41 PM

Verified PASSED using

Brave 1.37.89 Chromium: 99.0.4844.51 (Official Build) beta (64-bit)
Revision d537ec02474b5afe23684e7963d538896c63ac77-refs/branch-heads/4844@{#875}
OS Windows 10 Version 21H2 (Build 19044.1586)

Case 1: publish with local node

  1. install 1.37.89
  2. launch Brave
  3. load ipns://ipfs.io
  4. click Use a Brave local IPFS node
  5. click the 3-dots menu
  6. click on Import and Share a File
  7. click on Import and Share a Directory
  8. click on Open Files
  9. click on Update IPNS -> With a File -> self {key}
    10.click on Update IPNS -> With a Directory -> self {key}

Import and Share (File, Directory)

file file directory directory
16998-1 16998-2 16998-3 16998-4

Open Files

example example
16998-5 16998-6

Update IPNS with (File, Directory)

file file directory directory
16998-7 16998-8 16998-9 16998-10

Case Two: IPFS flyout menu

  1. install 1.37.40
  2. launch Brave
  3. click on the "hamburger" menu
  4. confirmed there is no IPFS flyout menu
  5. load brave://ipfs-internals/
  6. click Use a Brave local IPFS node
  7. open brave://settings/ipfs
  8. choose any one of the Ask, Gateway, Disabled options under Method to resolve IPFS resources
  9. click on the "hamburger" menu again
  10. confirm you now see the IPFS flyout menu item
default ask / gateway / disabled Brave-local IPFS node enabled
16998-11 16998-13 16998-12

Verification passed on

Brave 1.37.101 Chromium: 99.0.4844.83 (Official Build) beta (64-bit)
Revision b11086e62d7c1a44b0942ac5568d22a425c7ae35-refs/branch-heads/4844_74@{#5}
OS Ubuntu 20 LTS

Case 1: publish with local node

  1. install Brave
  2. launch Brave
  3. load ipns://ipfs.io
  4. click Use a Brave local IPFS node
  5. click the 3-dots menu
  6. click on Import and Share a File
  7. click on Import and Share a Directory
  8. click on Open Files
  9. click on Update IPNS -> With a File -> self {key}
    10.click on Update IPNS -> With a Directory -> self {key}

Import and Share (File, Directory)

file file directory directory
image image image image

Open Files

example example
image image

Update IPNS with (File, Directory)

file file directory directory
image image

Case Two: IPFS flyout menu

  1. install Brave
  2. launch Brave
  3. click on the "hamburger" menu
  4. confirmed there is no IPFS flyout menu
  5. load ipns://ipfs.io
  6. click Use a Brave local IPFS node
  7. open brave://settings/ipfs
  8. choose any one of the Ask, Gateway, Disabled options under Method to resolve IPFS resources
  9. click on the "hamburger" menu again
  10. confirm you now see the IPFS flyout menu item
default ask / gateway / disabled Brave-local IPFS node enabled
image image image

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