<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
etFileList
- injecte le bon composant
<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
) commeisShared
,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
- injecte des actions redux (actions sur les fichiers et actions d'UI comme
FolderView
: layoutToolbar
, wrappé par unFolderContext
qui injecte des props de contexte :canSort
,canDrop
,canUpload
,canCreateFolder
,isTrashView
,isRecentsView
,isShared
,hasWriteAccess
, ... => décide de laToolbar
à 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 exSelectFilesMenuItem
FileList
, wrappé par unFolderContent
(?) qui injecte la liste des fichiers, lecanSort
(?), les actions possibles sur un item ou une sélection en fonction du contexte