@ndla/ui 27.1.2 → 27.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/TreeStructure/ComboboxButton.js +3 -3
- package/es/TreeStructure/FolderItem.js +6 -9
- package/es/TreeStructure/TreeStructure.js +34 -29
- package/es/locale/messages-se.js +6 -6
- package/lib/TreeStructure/ComboboxButton.d.ts +2 -2
- package/lib/TreeStructure/ComboboxButton.js +3 -3
- package/lib/TreeStructure/FolderItem.d.ts +1 -1
- package/lib/TreeStructure/FolderItem.js +6 -9
- package/lib/TreeStructure/TreeStructure.d.ts +1 -0
- package/lib/TreeStructure/TreeStructure.js +34 -29
- package/lib/TreeStructure/index.d.ts +1 -1
- package/lib/TreeStructure/types.d.ts +1 -6
- package/lib/index.d.ts +1 -1
- package/lib/locale/messages-se.js +6 -6
- package/package.json +7 -7
- package/src/TreeStructure/ComboboxButton.tsx +3 -3
- package/src/TreeStructure/FolderItem.tsx +1 -3
- package/src/TreeStructure/TreeStructure.tsx +22 -16
- package/src/TreeStructure/index.ts +1 -1
- package/src/TreeStructure/types.ts +1 -7
- package/src/index.ts +1 -1
- package/src/locale/messages-se.ts +6 -6
- package/src/.DS_Store +0 -0
|
@@ -53,12 +53,12 @@ interface Props {
|
|
|
53
53
|
label?: string;
|
|
54
54
|
focusedFolder?: FolderType;
|
|
55
55
|
selectedFolder?: FolderType;
|
|
56
|
-
setSelectedFolder: (folder
|
|
56
|
+
setSelectedFolder: (folder: FolderType) => void;
|
|
57
57
|
onToggleTree: (open: boolean) => void;
|
|
58
58
|
flattenedFolders: FolderType[];
|
|
59
59
|
onOpenFolder: (id: string) => void;
|
|
60
60
|
onCloseFolder: (id: string) => void;
|
|
61
|
-
setFocusedFolder: (folder
|
|
61
|
+
setFocusedFolder: (folder: FolderType) => void;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
const ComboboxButton = forwardRef<HTMLButtonElement, Props>(
|
|
@@ -82,7 +82,7 @@ const ComboboxButton = forwardRef<HTMLButtonElement, Props>(
|
|
|
82
82
|
|
|
83
83
|
const onKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {
|
|
84
84
|
if (e.key === 'Enter') {
|
|
85
|
-
if (showTree) {
|
|
85
|
+
if (showTree && focusedFolder) {
|
|
86
86
|
setSelectedFolder(focusedFolder);
|
|
87
87
|
}
|
|
88
88
|
return;
|
|
@@ -117,7 +117,6 @@ const FolderItem = ({
|
|
|
117
117
|
selectedFolder,
|
|
118
118
|
onCloseFolder,
|
|
119
119
|
onOpenFolder,
|
|
120
|
-
onSelectFolder,
|
|
121
120
|
setFocusedFolder,
|
|
122
121
|
setSelectedFolder,
|
|
123
122
|
targetResource,
|
|
@@ -143,7 +142,6 @@ const FolderItem = ({
|
|
|
143
142
|
if (selected) {
|
|
144
143
|
closeTree();
|
|
145
144
|
}
|
|
146
|
-
onSelectFolder?.(id);
|
|
147
145
|
}
|
|
148
146
|
};
|
|
149
147
|
|
|
@@ -193,7 +191,7 @@ const FolderItem = ({
|
|
|
193
191
|
selected={selected}
|
|
194
192
|
onFocus={() => setFocusedFolder(folder)}
|
|
195
193
|
onClick={handleClickFolder}>
|
|
196
|
-
{
|
|
194
|
+
{!hideArrow && (
|
|
197
195
|
<OpenButton
|
|
198
196
|
aria-hidden
|
|
199
197
|
tabIndex={-1}
|
|
@@ -81,6 +81,7 @@ export interface TreeStructureProps extends CommonTreeStructureProps {
|
|
|
81
81
|
label?: string;
|
|
82
82
|
maxLevel?: number;
|
|
83
83
|
newFolderInput?: NewFolderInputFunc;
|
|
84
|
+
onSelectFolder?: (id: string) => void;
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
const TreeStructure = ({
|
|
@@ -101,8 +102,8 @@ const TreeStructure = ({
|
|
|
101
102
|
const [openFolders, setOpenFolders] = useState<string[]>(defaultOpenFolders || []);
|
|
102
103
|
|
|
103
104
|
const [newFolderParentId, setNewFolderParentId] = useState<string | undefined>();
|
|
104
|
-
const [focusedFolder,
|
|
105
|
-
const [selectedFolder,
|
|
105
|
+
const [focusedFolder, _setFocusedFolder] = useState<FolderType | undefined>();
|
|
106
|
+
const [selectedFolder, _setSelectedFolder] = useState<FolderType | undefined>();
|
|
106
107
|
const [showTree, setShowTree] = useState(type === 'navigation');
|
|
107
108
|
|
|
108
109
|
const flattenedFolders = useMemo(() => flattenFolders(folders, openFolders), [folders, openFolders]);
|
|
@@ -122,9 +123,9 @@ const TreeStructure = ({
|
|
|
122
123
|
if (defaultSelectedFolderId !== undefined) {
|
|
123
124
|
const selected = flattenFolders(folders).find((folder) => folder.id === defaultSelectedFolderId);
|
|
124
125
|
if (selected) {
|
|
125
|
-
|
|
126
|
+
_setSelectedFolder(selected);
|
|
126
127
|
if (type === 'picker') {
|
|
127
|
-
|
|
128
|
+
_setFocusedFolder(selected);
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
}
|
|
@@ -138,6 +139,22 @@ const TreeStructure = ({
|
|
|
138
139
|
}
|
|
139
140
|
};
|
|
140
141
|
|
|
142
|
+
const setSelectedFolder = (folder: FolderType) => {
|
|
143
|
+
_setSelectedFolder(folder);
|
|
144
|
+
onSelectFolder?.(folder.id);
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
const setFocusedFolder = (folder: FolderType) => {
|
|
148
|
+
_setFocusedFolder(folder);
|
|
149
|
+
setNewFolderParentId(undefined);
|
|
150
|
+
|
|
151
|
+
ref.current?.focus();
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
const onOpenFolder = (id: string) => {
|
|
155
|
+
setOpenFolders(uniq(openFolders.concat(id)));
|
|
156
|
+
};
|
|
157
|
+
|
|
141
158
|
const onCloseFolder = (id: string) => {
|
|
142
159
|
const closedFolder = flattenedFolders.find((folder) => folder.id === id);
|
|
143
160
|
|
|
@@ -150,14 +167,9 @@ const TreeStructure = ({
|
|
|
150
167
|
setOpenFolders(openFolders.filter((folderId) => folderId !== id));
|
|
151
168
|
};
|
|
152
169
|
|
|
153
|
-
const onOpenFolder = (id: string) => {
|
|
154
|
-
setOpenFolders(uniq(openFolders.concat(id)));
|
|
155
|
-
};
|
|
156
|
-
|
|
157
170
|
const onNewFolderCreated = (newFolder: IFolder | undefined, parentId: string) => {
|
|
158
171
|
if (newFolder) {
|
|
159
172
|
setSelectedFolder(newFolder);
|
|
160
|
-
onSelectFolder?.(newFolder.id);
|
|
161
173
|
setFocusedFolder(newFolder);
|
|
162
174
|
setOpenFolders(uniq(openFolders.concat(parentId)));
|
|
163
175
|
setNewFolderParentId?.(undefined);
|
|
@@ -170,11 +182,6 @@ const TreeStructure = ({
|
|
|
170
182
|
ref.current?.focus();
|
|
171
183
|
};
|
|
172
184
|
|
|
173
|
-
const setFolderFocus = (folder: FolderType) => {
|
|
174
|
-
setFocusedFolder(folder);
|
|
175
|
-
setNewFolderParentId(undefined);
|
|
176
|
-
ref.current?.focus();
|
|
177
|
-
};
|
|
178
185
|
const canAddFolder = showTree && selectedFolder && selectedFolder?.breadcrumbs.length < (maxLevel || 1);
|
|
179
186
|
|
|
180
187
|
return (
|
|
@@ -224,9 +231,8 @@ const TreeStructure = ({
|
|
|
224
231
|
onCancelNewFolder={onCancelNewFolder}
|
|
225
232
|
onCloseFolder={onCloseFolder}
|
|
226
233
|
onOpenFolder={onOpenFolder}
|
|
227
|
-
onSelectFolder={onSelectFolder}
|
|
228
234
|
openFolders={openFolders}
|
|
229
|
-
setFocusedFolder={
|
|
235
|
+
setFocusedFolder={setFocusedFolder}
|
|
230
236
|
setSelectedFolder={setSelectedFolder}
|
|
231
237
|
targetResource={targetResource}
|
|
232
238
|
visibleFolders={flattenedFolders}
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { ReactNode } from 'react';
|
|
10
10
|
import { IFolder, IResource } from '@ndla/types-learningpath-api';
|
|
11
|
-
import { MenuItemProps } from '@ndla/button';
|
|
12
11
|
|
|
13
12
|
export interface FolderType extends IFolder {
|
|
14
13
|
icon?: ReactNode;
|
|
@@ -29,13 +28,8 @@ export type NewFolderInputFunc = ({
|
|
|
29
28
|
onCreate: OnCreatedFunc;
|
|
30
29
|
}) => ReactNode;
|
|
31
30
|
|
|
32
|
-
export interface TreeStructureMenuProps extends Omit<MenuItemProps, 'onClick'> {
|
|
33
|
-
onClick: (e: MouseEvent<HTMLDivElement> | undefined, folder: FolderType) => void;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
31
|
export interface CommonTreeStructureProps {
|
|
37
32
|
loading?: boolean;
|
|
38
|
-
onSelectFolder?: (id: string) => void;
|
|
39
33
|
targetResource?: IResource;
|
|
40
34
|
type: TreeStructureType;
|
|
41
35
|
}
|
package/src/index.ts
CHANGED
|
@@ -252,6 +252,6 @@ export { SnackbarProvider, useSnack, BaseSnack, DefaultSnackbar } from './SnackB
|
|
|
252
252
|
export type { Snack, SnackContext } from './SnackBar';
|
|
253
253
|
export { InfoBlock } from './InfoBlock';
|
|
254
254
|
export { TreeStructure } from './TreeStructure';
|
|
255
|
-
export type { FolderType, TreeStructureProps
|
|
255
|
+
export type { FolderType, TreeStructureProps } from './TreeStructure';
|
|
256
256
|
|
|
257
257
|
export { SearchField, SearchResultList, SearchResultItem, ActiveFilters, ToggleSearchButton } from './Search';
|
|
@@ -997,16 +997,16 @@ const messages = {
|
|
|
997
997
|
folder: {
|
|
998
998
|
folder: 'Máhppa',
|
|
999
999
|
delete: 'Sihko',
|
|
1000
|
-
edit: '
|
|
1000
|
+
edit: 'Rievdat',
|
|
1001
1001
|
missingName: 'Čále nama máhppii',
|
|
1002
1002
|
folderDeleted: '"{{folderName}}" lea sihkkojuvvon',
|
|
1003
1003
|
folderCreated: '"{{folderName}}" er oppretta',
|
|
1004
1004
|
},
|
|
1005
|
-
tagList: '
|
|
1005
|
+
tagList: 'Fáddágilkor',
|
|
1006
1006
|
tags: '{{count}} fáddágilkor',
|
|
1007
1007
|
tags_plural: '{{count}} fáddágilkorat',
|
|
1008
|
-
moreTags: '
|
|
1009
|
-
moreTags_plural: '
|
|
1008
|
+
moreTags: 'Čájet nuppi fáddágilkora vel',
|
|
1009
|
+
moreTags_plural: 'Čájet {{count}} fáddágilkoriid vel',
|
|
1010
1010
|
confirmDeleteFolder: 'Leat go áibbas sihkar ahte dáhtut sihkkut máhpa? Dan ii sáhte gáhtat.',
|
|
1011
1011
|
confirmDeleteTag: 'Leat go áibbas sihkar ahte dáhtut sihkkut fáddágilkora? Dan ii sáhte gáhtat.',
|
|
1012
1012
|
myFolders: 'Mu máhpat',
|
|
@@ -1031,8 +1031,8 @@ const messages = {
|
|
|
1031
1031
|
deleteAccount: 'Sihko mu NDLA',
|
|
1032
1032
|
logout: 'Logge eret mu NDLAs',
|
|
1033
1033
|
loginText:
|
|
1034
|
-
'
|
|
1035
|
-
loginTextLink: '
|
|
1034
|
+
'Jus galggat sáhttit geavahit bálvalusa Mu NDLA fertet leat oahppi dahje bargat muhtin skuvllas fylkkas mii lea mielde NDLA-ovttasbarggus. Mii bivdit ahte it čále maidege unohasaid, persovdnasensitiivvalaš dieđuid dahje eará persovdnadáhtaid min teakstagieddái. Loga min ',
|
|
1035
|
+
loginTextLink: 'personsuodjalusjulggaštusa dákko',
|
|
1036
1036
|
loginTerms: 'Logge Feide bokte vai oaččut beassanlobi. Go logget sisa de dohkkehat min geavahaneavttuid.',
|
|
1037
1037
|
loginResourcePitch: 'Dáhtut go merket siiddu oiddohin?',
|
|
1038
1038
|
loginWelcome: 'Bures boahtin NDLA:ii! Dáppe sáhtát fágaávdnasiid ordnet iežat vuogi mielde',
|
package/src/.DS_Store
DELETED
|
Binary file
|