Skip to content

Instantly share code, notes, and snippets.

@goldoraf
Last active September 13, 2018 13:59
Show Gist options
  • Save goldoraf/92ab48eaab870eaa3d7111fb386cad55 to your computer and use it in GitHub Desktop.
Save goldoraf/92ab48eaab870eaa3d7111fb386cad55 to your computer and use it in GitHub Desktop.

Existant

  • <Context>Container :
    • injecte le bon composant <Context>Toolbar
    • injecte des props de contexte : canSort, canDrop, canUpload, canCreateFolder, isTrashContext (pas heureuse celle-là...)
    • injecte les actions sur une sélection, qui sont aussi utilisées pour l'action menu.
      • FolderView :
        • layout
        • passe des éléments de contexte à la Toolbar : folderId, canUpload...
        • passe 1 élément de contexte à FileList : canSort...
        • passe les actions sur une sélection en prop à SelectionBar et FileList
  • <Context>Toolbar (composant container ou connecté) :
    • injecte des actions redux (actions sur les fichiers et actions d'UI comme showSelectionBar) qui sont utilisés par les items du menu more et les boutons
    • injecte des props de contexte de partage (via un wrapper SharedDocument) comme isShared, hasWriteAccess.. ET une action relative au partage et utilisée dans le menu more : onLeave
      • <Context>Toolbar :
        • layout (boutons, destinataires de partage (éventuellement), menu more) : le responsive est géré en pur CSS
        • contenu du menu more en fonction des props de contexte

Découpage des responsabilités

  • FolderView : layout
    • Toolbar, wrappé par un FolderContext qui injecte des props de contexte : canSort, canDrop, canUpload, canCreateFolder, isTrashView, isRecentsView, isShared, hasWriteAccess, ... => décide de la Toolbar à afficher : RootFolderToolbar, FolderToolbar, SharedFolderToolbar, TrashToolbar...
      • FolderToolbar : layout et surtout contenu du menu more
        • <Action>MenuItem : entrée de menu connecté à l'action (redux ou non), par ex SelectFilesMenuItem
    • FileList, wrappé par un FolderContent (?) qui injecte la liste des fichiers, le canSort (?), les actions possibles sur un item ou une sélection en fonction du contexte
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment