@ndla/ui 13.2.2 → 15.1.0
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/Article/Article.js +22 -3
- package/es/Article/ArticleFavoritesButton.js +38 -0
- package/es/Article/index.js +2 -1
- package/es/Breadcrumb/ActionBreadcrumb.js +57 -0
- package/es/Breadcrumb/index.js +1 -0
- package/es/Footer/FooterAuth.js +15 -22
- package/es/InfoBlock/InfoBlock.js +55 -0
- package/es/InfoBlock/index.js +1 -0
- package/es/LearningPaths/LearningPathMenu.js +3 -4
- package/es/Masthead/MastheadAuthModal.js +2 -2
- package/es/MyNdla/Navigation/VerticalNavigation.js +51 -0
- package/es/MyNdla/Navigation/index.js +2 -0
- package/es/MyNdla/Resource/Folder.js +86 -0
- package/es/MyNdla/Resource/FolderInput.js +96 -0
- package/{lib/MyNdla/ResourceDash/ResourcesView.d.ts → es/MyNdla/Resource/index.js} +3 -3
- package/es/MyNdla/index.js +4 -4
- package/es/Resource/BlockResource.js +73 -0
- package/es/Resource/ListResource.js +66 -0
- package/es/Resource/index.js +10 -0
- package/es/Resource/resourceComponents.js +97 -0
- package/es/ResourceGroup/ResourceGroup.js +7 -5
- package/es/ResourceGroup/ResourceItem.js +28 -30
- package/es/ResourceGroup/ResourceList.js +18 -6
- package/es/Search/ActiveFilters.js +6 -7
- package/es/Search/ContentTypeResult.js +6 -8
- package/es/SearchTypeResult/ActiveFilters.js +6 -10
- package/es/SnackBar/SnackBar.js +117 -0
- package/es/SnackBar/index.js +9 -0
- package/es/TagSelector/SuggestionInput.js +240 -0
- package/es/TagSelector/Suggestions.js +93 -0
- package/es/TagSelector/TagSelector.js +137 -0
- package/es/TagSelector/index.js +9 -0
- package/es/TopicIntroductionList/TopicIntroduction.js +2 -4
- package/es/TopicIntroductionList/TopicShortcutItem.js +1 -3
- package/es/TreeStructure/FolderItem.js +130 -0
- package/es/TreeStructure/FolderItems.js +123 -0
- package/es/TreeStructure/FolderNameInput.js +112 -0
- package/es/TreeStructure/TreeStructure.js +254 -0
- package/es/TreeStructure/TreeStructure.types.js +0 -0
- package/es/TreeStructure/TreeStructureWrapper.js +13 -0
- package/es/TreeStructure/helperFunctions.js +92 -0
- package/es/TreeStructure/index.js +9 -0
- package/es/TreeStructure/keyboardNavigation/keyboardNavigation.js +182 -0
- package/es/TreeStructure/keyboardNavigation/keyboardNavigation.types.js +0 -0
- package/es/User/AuthModal.js +15 -24
- package/es/User/UserInfo.js +70 -0
- package/es/User/apiTypes.js +0 -0
- package/es/User/index.js +2 -0
- package/es/User/parseUserObject.js +102 -0
- package/es/all.css +90 -0
- package/es/index.js +9 -3
- package/es/locale/messages-en.js +71 -4
- package/es/locale/messages-nb.js +70 -3
- package/es/locale/messages-nn.js +70 -3
- package/es/locale/messages-se.js +70 -3
- package/es/locale/messages-sma.js +70 -3
- package/lib/Article/Article.d.ts +3 -1
- package/lib/Article/Article.js +43 -23
- package/lib/Article/ArticleFavoritesButton.d.ts +15 -0
- package/lib/Article/ArticleFavoritesButton.js +56 -0
- package/lib/Article/index.d.ts +2 -1
- package/lib/Article/index.js +8 -0
- package/lib/Breadcrumb/ActionBreadcrumb.d.ts +16 -0
- package/lib/Breadcrumb/ActionBreadcrumb.js +72 -0
- package/lib/Breadcrumb/index.d.ts +1 -0
- package/lib/Breadcrumb/index.js +8 -0
- package/lib/Footer/FooterAuth.d.ts +1 -1
- package/lib/Footer/FooterAuth.js +17 -17
- package/lib/InfoBlock/InfoBlock.d.ts +8 -0
- package/lib/InfoBlock/InfoBlock.js +58 -0
- package/lib/InfoBlock/index.d.ts +1 -0
- package/lib/InfoBlock/index.js +13 -0
- package/lib/LearningPaths/LearningPathMenu.js +3 -4
- package/lib/Masthead/MastheadAuthModal.d.ts +3 -3
- package/lib/Masthead/MastheadAuthModal.js +3 -3
- package/lib/MyNdla/Navigation/VerticalNavigation.d.ts +10 -0
- package/lib/MyNdla/Navigation/VerticalNavigation.js +61 -0
- package/lib/MyNdla/Navigation/index.d.ts +2 -0
- package/lib/MyNdla/Navigation/index.js +15 -0
- package/lib/MyNdla/Resource/Folder.d.ts +20 -0
- package/lib/MyNdla/Resource/Folder.js +100 -0
- package/lib/MyNdla/Resource/FolderInput.d.ts +15 -0
- package/lib/MyNdla/Resource/FolderInput.js +116 -0
- package/lib/MyNdla/Resource/index.d.ts +10 -0
- package/lib/MyNdla/Resource/index.js +23 -0
- package/lib/MyNdla/index.d.ts +4 -4
- package/lib/MyNdla/index.js +13 -7
- package/lib/Resource/BlockResource.d.ts +20 -0
- package/lib/Resource/BlockResource.js +84 -0
- package/lib/Resource/ListResource.d.ts +20 -0
- package/lib/Resource/ListResource.js +78 -0
- package/lib/Resource/index.d.ts +11 -0
- package/lib/Resource/index.js +29 -0
- package/lib/Resource/resourceComponents.d.ts +24 -0
- package/lib/Resource/resourceComponents.js +106 -0
- package/lib/ResourceGroup/ResourceGroup.d.ts +2 -1
- package/lib/ResourceGroup/ResourceGroup.js +7 -5
- package/lib/ResourceGroup/ResourceItem.d.ts +5 -1
- package/lib/ResourceGroup/ResourceItem.js +29 -30
- package/lib/ResourceGroup/ResourceList.d.ts +3 -1
- package/lib/ResourceGroup/ResourceList.js +18 -6
- package/lib/Search/ActiveFilters.js +6 -7
- package/lib/Search/ContentTypeResult.js +6 -8
- package/lib/SearchTypeResult/ActiveFilters.js +6 -10
- package/lib/SnackBar/SnackBar.d.ts +23 -0
- package/lib/SnackBar/SnackBar.js +127 -0
- package/lib/SnackBar/index.d.ts +10 -0
- package/lib/SnackBar/index.js +15 -0
- package/lib/TagSelector/SuggestionInput.d.ts +19 -0
- package/lib/TagSelector/SuggestionInput.js +255 -0
- package/lib/TagSelector/Suggestions.d.ts +12 -0
- package/lib/TagSelector/Suggestions.js +96 -0
- package/lib/TagSelector/TagSelector.d.ts +16 -0
- package/lib/TagSelector/TagSelector.js +150 -0
- package/lib/TagSelector/index.d.ts +10 -0
- package/lib/TagSelector/index.js +19 -0
- package/lib/TopicIntroductionList/TopicIntroduction.js +2 -4
- package/lib/TopicIntroductionList/TopicShortcutItem.js +1 -3
- package/lib/TreeStructure/FolderItem.d.ts +27 -0
- package/lib/TreeStructure/FolderItem.js +140 -0
- package/lib/TreeStructure/FolderItems.d.ts +11 -0
- package/lib/TreeStructure/FolderItems.js +130 -0
- package/lib/TreeStructure/FolderNameInput.d.ts +15 -0
- package/lib/TreeStructure/FolderNameInput.js +125 -0
- package/lib/TreeStructure/TreeStructure.d.ts +12 -0
- package/lib/TreeStructure/TreeStructure.js +273 -0
- package/lib/TreeStructure/TreeStructure.types.d.ts +63 -0
- package/lib/TreeStructure/TreeStructure.types.js +1 -0
- package/lib/TreeStructure/TreeStructureWrapper.d.ts +12 -0
- package/lib/TreeStructure/TreeStructureWrapper.js +24 -0
- package/lib/TreeStructure/helperFunctions.d.ts +5 -0
- package/lib/TreeStructure/helperFunctions.js +103 -0
- package/lib/TreeStructure/index.d.ts +10 -0
- package/lib/TreeStructure/index.js +15 -0
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.d.ts +11 -0
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.js +186 -0
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.types.d.ts +26 -0
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.types.js +1 -0
- package/lib/User/AuthModal.d.ts +3 -3
- package/lib/User/AuthModal.js +16 -23
- package/lib/User/UserInfo.d.ts +13 -0
- package/lib/User/UserInfo.js +84 -0
- package/lib/User/apiTypes.d.ts +61 -0
- package/lib/User/apiTypes.js +1 -0
- package/lib/User/index.d.ts +4 -0
- package/lib/User/index.js +8 -0
- package/lib/User/parseUserObject.d.ts +32 -0
- package/lib/User/parseUserObject.js +105 -0
- package/lib/all.css +90 -0
- package/lib/index.d.ts +14 -3
- package/lib/index.js +83 -10
- package/lib/locale/messages-en.d.ts +67 -0
- package/lib/locale/messages-en.js +71 -4
- package/lib/locale/messages-nb.d.ts +67 -0
- package/lib/locale/messages-nb.js +70 -3
- package/lib/locale/messages-nn.d.ts +67 -0
- package/lib/locale/messages-nn.js +70 -3
- package/lib/locale/messages-se.d.ts +67 -0
- package/lib/locale/messages-se.js +70 -3
- package/lib/locale/messages-sma.d.ts +67 -0
- package/lib/locale/messages-sma.js +70 -3
- package/lib/types.d.ts +1 -1
- package/package.json +11 -11
- package/src/Article/Article.tsx +31 -0
- package/src/Article/ArticleFavoritesButton.tsx +40 -0
- package/src/Article/index.ts +2 -0
- package/src/Breadcrumb/ActionBreadcrumb.tsx +68 -0
- package/src/Breadcrumb/index.ts +2 -0
- package/src/Footer/FooterAuth.tsx +7 -9
- package/src/InfoBlock/InfoBlock.tsx +61 -0
- package/src/InfoBlock/index.ts +1 -0
- package/src/LearningPaths/LearningPathMenu.tsx +1 -1
- package/src/Masthead/MastheadAuthModal.tsx +4 -5
- package/src/MyNdla/Navigation/VerticalNavigation.tsx +93 -0
- package/src/MyNdla/Navigation/index.ts +2 -0
- package/src/MyNdla/Resource/Folder.tsx +145 -0
- package/src/MyNdla/Resource/FolderInput.tsx +104 -0
- package/src/MyNdla/Resource/index.ts +11 -0
- package/src/MyNdla/index.ts +4 -5
- package/src/Resource/BlockResource.tsx +101 -0
- package/src/Resource/ListResource.tsx +111 -0
- package/src/Resource/index.ts +12 -0
- package/src/Resource/resourceComponents.tsx +143 -0
- package/src/ResourceGroup/ResourceGroup.tsx +3 -0
- package/src/ResourceGroup/ResourceItem.tsx +20 -3
- package/src/ResourceGroup/ResourceList.tsx +16 -3
- package/src/Search/ActiveFilters.jsx +0 -1
- package/src/Search/ContentTypeResult.tsx +8 -9
- package/src/SearchTypeResult/ActiveFilters.tsx +1 -3
- package/src/SnackBar/SnackBar.tsx +183 -0
- package/src/SnackBar/index.ts +13 -0
- package/src/TagSelector/SuggestionInput.tsx +230 -0
- package/src/TagSelector/Suggestions.tsx +125 -0
- package/src/TagSelector/TagSelector.tsx +111 -0
- package/src/TagSelector/index.ts +13 -0
- package/src/TopicIntroductionList/TopicIntroduction.tsx +2 -2
- package/src/TopicIntroductionList/TopicShortcutItem.tsx +1 -5
- package/src/TreeStructure/FolderItem.tsx +160 -0
- package/src/TreeStructure/FolderItems.tsx +109 -0
- package/src/TreeStructure/FolderNameInput.tsx +109 -0
- package/src/TreeStructure/TreeStructure.tsx +184 -0
- package/src/TreeStructure/TreeStructure.types.ts +69 -0
- package/src/TreeStructure/TreeStructureWrapper.tsx +34 -0
- package/src/TreeStructure/helperFunctions.ts +52 -0
- package/src/TreeStructure/index.ts +11 -0
- package/src/TreeStructure/keyboardNavigation/keyboardNavigation.ts +161 -0
- package/src/TreeStructure/keyboardNavigation/keyboardNavigation.types.ts +28 -0
- package/src/User/AuthModal.tsx +5 -26
- package/src/User/UserInfo.tsx +80 -0
- package/src/User/__tests__/parseUserObject-test.ts +315 -0
- package/src/User/apiTypes.ts +74 -0
- package/src/User/index.ts +4 -0
- package/src/User/parseUserObject.ts +83 -0
- package/src/all.scss +2 -0
- package/src/index.ts +15 -4
- package/src/locale/messages-en.ts +65 -3
- package/src/locale/messages-nb.ts +64 -2
- package/src/locale/messages-nn.ts +64 -2
- package/src/locale/messages-se.ts +64 -2
- package/src/locale/messages-sma.ts +64 -2
- package/src/types.ts +1 -1
- package/es/MyNdla/ResourceDash/Breadcrumbs.js +0 -22
- package/es/MyNdla/ResourceDash/ResourceElement.js +0 -27
- package/es/MyNdla/ResourceDash/ResourcesView.js +0 -43
- package/es/MyNdla/ResourceDash/index.js +0 -4
- package/lib/MyNdla/ResourceDash/Breadcrumbs.d.ts +0 -15
- package/lib/MyNdla/ResourceDash/Breadcrumbs.js +0 -35
- package/lib/MyNdla/ResourceDash/ResourceElement.d.ts +0 -18
- package/lib/MyNdla/ResourceDash/ResourceElement.js +0 -38
- package/lib/MyNdla/ResourceDash/ResourcesView.js +0 -57
- package/lib/MyNdla/ResourceDash/index.d.ts +0 -4
- package/lib/MyNdla/ResourceDash/index.js +0 -31
- package/src/MyNdla/ResourceDash/Breadcrumbs.tsx +0 -31
- package/src/MyNdla/ResourceDash/ResourceElement.tsx +0 -50
- package/src/MyNdla/ResourceDash/ResourcesView.tsx +0 -42
- package/src/MyNdla/ResourceDash/index.ts +0 -5
|
@@ -28,6 +28,19 @@ exports.contentTypes = contentTypes;
|
|
|
28
28
|
var titleTemplate = ' - NDLA';
|
|
29
29
|
|
|
30
30
|
var messages = _objectSpread(_objectSpread({
|
|
31
|
+
treeStructure: {
|
|
32
|
+
createFolder: 'Lag mappe',
|
|
33
|
+
newFolder: {
|
|
34
|
+
placeholder: 'Skriv navn på mappe',
|
|
35
|
+
defaultName: 'Ny mappe'
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
tagSelector: {
|
|
39
|
+
placeholder: 'Tilknytt tag',
|
|
40
|
+
removeTag: 'Ta vekk tilknytninga til {{name}}',
|
|
41
|
+
hideAllTags: 'Skjul alle tagger',
|
|
42
|
+
showAllTags: 'Vis alle tagger'
|
|
43
|
+
},
|
|
31
44
|
htmlTitles: {
|
|
32
45
|
titleTemplate: titleTemplate,
|
|
33
46
|
welcomePage: "Framsida".concat(titleTemplate),
|
|
@@ -906,6 +919,15 @@ var messages = _objectSpread(_objectSpread({
|
|
|
906
919
|
},
|
|
907
920
|
resource: {
|
|
908
921
|
accessDenied: 'Vi beklagar, men denne ressursen er berre for lærarar innlogga med Feide.'
|
|
922
|
+
},
|
|
923
|
+
primarySchool: 'Hovudskule',
|
|
924
|
+
name: 'Namn',
|
|
925
|
+
mail: 'E-post',
|
|
926
|
+
username: 'Brukarnamn',
|
|
927
|
+
groupTypes: {
|
|
928
|
+
basic: 'Basisgruppe',
|
|
929
|
+
teaching: 'Undervisningsgruppe',
|
|
930
|
+
other: 'Andre grupper'
|
|
909
931
|
}
|
|
910
932
|
},
|
|
911
933
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
@@ -918,15 +940,60 @@ var messages = _objectSpread(_objectSpread({
|
|
|
918
940
|
close: 'Lukk faktaboks'
|
|
919
941
|
},
|
|
920
942
|
myNdla: {
|
|
921
|
-
resources: '
|
|
922
|
-
|
|
943
|
+
resources: '{{count}} ressurs',
|
|
944
|
+
resources_plural: '{{count}} ressursar',
|
|
945
|
+
folders: '{{count}} mappe',
|
|
946
|
+
folders_plural: '{{count}} mapper',
|
|
923
947
|
folder: 'Mappe',
|
|
924
948
|
myFolders: 'Mine mapper',
|
|
925
949
|
myTags: 'Mine tags',
|
|
926
950
|
newFolder: 'Ny mappe',
|
|
951
|
+
newFolderUnder: 'Lag ny mappe under {{folderName}}',
|
|
927
952
|
myAccount: 'Min konto',
|
|
928
953
|
favourites: 'Favorittar',
|
|
929
|
-
help: 'Hjelp'
|
|
954
|
+
help: 'Hjelp',
|
|
955
|
+
more: 'Fleire val',
|
|
956
|
+
listView: 'Listevisning',
|
|
957
|
+
detailView: 'Detaljrik listevisning',
|
|
958
|
+
shortView: 'Kort visning',
|
|
959
|
+
myPage: {
|
|
960
|
+
myPage: 'Min side',
|
|
961
|
+
deleteAccount: 'Slett Min NDLA',
|
|
962
|
+
logout: 'Logg ut av Min NDLA',
|
|
963
|
+
welcome: 'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
964
|
+
read: {
|
|
965
|
+
our: 'Les våre',
|
|
966
|
+
ours: 'Les vår'
|
|
967
|
+
},
|
|
968
|
+
privacy: 'personvernerklæring her',
|
|
969
|
+
questions: {
|
|
970
|
+
question: 'Lurer du på noe?',
|
|
971
|
+
ask: 'Spør oss i chatten'
|
|
972
|
+
},
|
|
973
|
+
wishToDelete: 'Ønsker du ikke ha brukerprofil hos oss lengre?',
|
|
974
|
+
terms: 'vilkår for bruk',
|
|
975
|
+
newFavourite: 'Nylig lagt til',
|
|
976
|
+
feide: 'Dette henter vi om deg fra Feide',
|
|
977
|
+
resource: {
|
|
978
|
+
addToMyNdla: 'Legg i Min NDLA',
|
|
979
|
+
addedToMyNdla: 'Lagt i Min NDLA'
|
|
980
|
+
},
|
|
981
|
+
storageInfo: {
|
|
982
|
+
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
983
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjertet øverst til høyre på siden. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
984
|
+
},
|
|
985
|
+
folderInfo: {
|
|
986
|
+
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
987
|
+
text: 'Du kommer til mappeoversikten din ved å klikke på mine mapper i menyen til venstre. Her kan du opprette nye mapper og undermapper. Du kan også opprette en ny mappe i dialogvinduet som kommer når du klikker på et hjerte i en ressurs.'
|
|
988
|
+
},
|
|
989
|
+
tagInfo: {
|
|
990
|
+
title: 'Slik tagger du dine favorittressurser',
|
|
991
|
+
text: 'Når du lagrer en ressurs får du mulighet til å tagge ressursen med et nøkkelord. Du kan senere bruke taggene til å finne tilbake til ressurser på tvers av mapper. Ved å velge mine tagger i venstremenyen får du oversikt over alle taggene du har brukt og du kan også her se hvilke ressurser som du har tagget med det bestemte nøkkelordet.'
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
},
|
|
995
|
+
snackbar: {
|
|
996
|
+
close: 'Lukk melding'
|
|
930
997
|
},
|
|
931
998
|
labels: {
|
|
932
999
|
category: 'Kategori',
|
|
@@ -33,6 +33,15 @@ declare const messages: {
|
|
|
33
33
|
resource: {
|
|
34
34
|
accessDenied: string;
|
|
35
35
|
};
|
|
36
|
+
primarySchool: string;
|
|
37
|
+
name: string;
|
|
38
|
+
mail: string;
|
|
39
|
+
username: string;
|
|
40
|
+
groupTypes: {
|
|
41
|
+
basic: string;
|
|
42
|
+
teaching: string;
|
|
43
|
+
other: string;
|
|
44
|
+
};
|
|
36
45
|
};
|
|
37
46
|
checkOutNewFeature: string;
|
|
38
47
|
slateBlockMenu: {
|
|
@@ -45,14 +54,59 @@ declare const messages: {
|
|
|
45
54
|
};
|
|
46
55
|
myNdla: {
|
|
47
56
|
resources: string;
|
|
57
|
+
resources_plural: string;
|
|
48
58
|
folders: string;
|
|
59
|
+
folders_plural: string;
|
|
49
60
|
folder: string;
|
|
50
61
|
myFolders: string;
|
|
51
62
|
myTags: string;
|
|
52
63
|
newFolder: string;
|
|
64
|
+
newFolderUnder: string;
|
|
53
65
|
myAccount: string;
|
|
54
66
|
favourites: string;
|
|
55
67
|
help: string;
|
|
68
|
+
more: string;
|
|
69
|
+
listView: string;
|
|
70
|
+
detailView: string;
|
|
71
|
+
shortView: string;
|
|
72
|
+
myPage: {
|
|
73
|
+
myPage: string;
|
|
74
|
+
deleteAccount: string;
|
|
75
|
+
logout: string;
|
|
76
|
+
welcome: string;
|
|
77
|
+
read: {
|
|
78
|
+
our: string;
|
|
79
|
+
ours: string;
|
|
80
|
+
};
|
|
81
|
+
privacy: string;
|
|
82
|
+
questions: {
|
|
83
|
+
question: string;
|
|
84
|
+
ask: string;
|
|
85
|
+
};
|
|
86
|
+
wishToDelete: string;
|
|
87
|
+
terms: string;
|
|
88
|
+
newFavourite: string;
|
|
89
|
+
feide: string;
|
|
90
|
+
resource: {
|
|
91
|
+
addToMyNdla: string;
|
|
92
|
+
addedToMyNdla: string;
|
|
93
|
+
};
|
|
94
|
+
storageInfo: {
|
|
95
|
+
title: string;
|
|
96
|
+
text: string;
|
|
97
|
+
};
|
|
98
|
+
folderInfo: {
|
|
99
|
+
title: string;
|
|
100
|
+
text: string;
|
|
101
|
+
};
|
|
102
|
+
tagInfo: {
|
|
103
|
+
title: string;
|
|
104
|
+
text: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
snackbar: {
|
|
109
|
+
close: string;
|
|
56
110
|
};
|
|
57
111
|
labels: {
|
|
58
112
|
category: string;
|
|
@@ -69,6 +123,19 @@ declare const messages: {
|
|
|
69
123
|
contact: string;
|
|
70
124
|
help: string;
|
|
71
125
|
};
|
|
126
|
+
treeStructure: {
|
|
127
|
+
createFolder: string;
|
|
128
|
+
newFolder: {
|
|
129
|
+
placeholder: string;
|
|
130
|
+
defaultName: string;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
tagSelector: {
|
|
134
|
+
placeholder: string;
|
|
135
|
+
removeTag: string;
|
|
136
|
+
hideAllTags: string;
|
|
137
|
+
showAllTags: string;
|
|
138
|
+
};
|
|
72
139
|
htmlTitles: {
|
|
73
140
|
titleTemplate: string;
|
|
74
141
|
welcomePage: string;
|
|
@@ -28,6 +28,19 @@ exports.contentTypes = contentTypes;
|
|
|
28
28
|
var titleTemplate = ' - NDLA';
|
|
29
29
|
|
|
30
30
|
var messages = _objectSpread(_objectSpread({
|
|
31
|
+
treeStructure: {
|
|
32
|
+
createFolder: 'Lag mappe',
|
|
33
|
+
newFolder: {
|
|
34
|
+
placeholder: 'Skriv navn på mappe',
|
|
35
|
+
defaultName: 'Ny mappe'
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
tagSelector: {
|
|
39
|
+
placeholder: 'Legg til tag',
|
|
40
|
+
removeTag: 'Ta vekk tilknytninga til {{name}}',
|
|
41
|
+
hideAllTags: 'Skjul alla tags',
|
|
42
|
+
showAllTags: 'Vis alla tags'
|
|
43
|
+
},
|
|
31
44
|
htmlTitles: {
|
|
32
45
|
titleTemplate: titleTemplate,
|
|
33
46
|
welcomePage: "Forsiden".concat(titleTemplate),
|
|
@@ -906,6 +919,15 @@ var messages = _objectSpread(_objectSpread({
|
|
|
906
919
|
},
|
|
907
920
|
resource: {
|
|
908
921
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.'
|
|
922
|
+
},
|
|
923
|
+
primarySchool: 'Hovudskule',
|
|
924
|
+
name: 'Namn',
|
|
925
|
+
mail: 'E-post',
|
|
926
|
+
username: 'Brukarnamn',
|
|
927
|
+
groupTypes: {
|
|
928
|
+
basic: 'Basisgruppe',
|
|
929
|
+
teaching: 'Undervisningsgruppe',
|
|
930
|
+
other: 'Andre grupper'
|
|
909
931
|
}
|
|
910
932
|
},
|
|
911
933
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
@@ -918,15 +940,60 @@ var messages = _objectSpread(_objectSpread({
|
|
|
918
940
|
close: 'Lukk faktaboks'
|
|
919
941
|
},
|
|
920
942
|
myNdla: {
|
|
921
|
-
resources: '
|
|
922
|
-
|
|
943
|
+
resources: '{{count}} ressurs',
|
|
944
|
+
resources_plural: '{{count}} ressurser',
|
|
945
|
+
folders: '{{count}} mappe',
|
|
946
|
+
folders_plural: '{{count}} mapper',
|
|
923
947
|
folder: 'Mappe',
|
|
924
948
|
myFolders: 'Mine mapper',
|
|
925
949
|
myTags: 'Mine tags',
|
|
926
950
|
newFolder: 'Ny mappe',
|
|
951
|
+
newFolderUnder: 'Lag ny mappe under {{folderName}}',
|
|
927
952
|
myAccount: 'Min konto',
|
|
928
953
|
favourites: 'Favoritter',
|
|
929
|
-
help: 'Hjelp'
|
|
954
|
+
help: 'Hjelp',
|
|
955
|
+
more: 'Flere valg',
|
|
956
|
+
listView: 'Listevisning',
|
|
957
|
+
detailView: 'Detaljrik listevisning',
|
|
958
|
+
shortView: 'Kort visning',
|
|
959
|
+
myPage: {
|
|
960
|
+
myPage: 'Min side',
|
|
961
|
+
deleteAccount: 'Slett Min NDLA',
|
|
962
|
+
logout: 'Logg ut av Min NDLA',
|
|
963
|
+
welcome: 'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
964
|
+
read: {
|
|
965
|
+
our: 'Les våre',
|
|
966
|
+
ours: 'Les vår'
|
|
967
|
+
},
|
|
968
|
+
privacy: 'personvernerklæring her',
|
|
969
|
+
questions: {
|
|
970
|
+
question: 'Lurer du på noe?',
|
|
971
|
+
ask: 'Spør oss i chatten'
|
|
972
|
+
},
|
|
973
|
+
wishToDelete: 'Ønsker du ikke ha brukerprofil hos oss lengre?',
|
|
974
|
+
terms: 'vilkår for bruk',
|
|
975
|
+
newFavourite: 'Nylig lagt til',
|
|
976
|
+
feide: 'Dette henter vi om deg fra Feide',
|
|
977
|
+
resource: {
|
|
978
|
+
addToMyNdla: 'Legg i Min NDLA',
|
|
979
|
+
addedToMyNdla: 'Lagt i Min NDLA'
|
|
980
|
+
},
|
|
981
|
+
storageInfo: {
|
|
982
|
+
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
983
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjertet øverst til høyre på siden. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
984
|
+
},
|
|
985
|
+
folderInfo: {
|
|
986
|
+
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
987
|
+
text: 'Du kommer til mappeoversikten din ved å klikke på mine mapper i menyen til venstre. Her kan du opprette nye mapper og undermapper. Du kan også opprette en ny mappe i dialogvinduet som kommer når du klikker på et hjerte i en ressurs.'
|
|
988
|
+
},
|
|
989
|
+
tagInfo: {
|
|
990
|
+
title: 'Slik tagger du dine favorittressurser',
|
|
991
|
+
text: 'Når du lagrer en ressurs får du mulighet til å tagge ressursen med et nøkkelord. Du kan senere bruke taggene til å finne tilbake til ressurser på tvers av mapper. Ved å velge mine tagger i venstremenyen får du oversikt over alle taggene du har brukt og du kan også her se hvilke ressurser som du har tagget med det bestemte nøkkelordet.'
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
},
|
|
995
|
+
snackbar: {
|
|
996
|
+
close: 'Lukk melding'
|
|
930
997
|
},
|
|
931
998
|
labels: {
|
|
932
999
|
category: 'Kategori',
|
|
@@ -33,6 +33,15 @@ declare const messages: {
|
|
|
33
33
|
resource: {
|
|
34
34
|
accessDenied: string;
|
|
35
35
|
};
|
|
36
|
+
primarySchool: string;
|
|
37
|
+
name: string;
|
|
38
|
+
mail: string;
|
|
39
|
+
username: string;
|
|
40
|
+
groupTypes: {
|
|
41
|
+
basic: string;
|
|
42
|
+
teaching: string;
|
|
43
|
+
other: string;
|
|
44
|
+
};
|
|
36
45
|
};
|
|
37
46
|
checkOutNewFeature: string;
|
|
38
47
|
slateBlockMenu: {
|
|
@@ -45,14 +54,59 @@ declare const messages: {
|
|
|
45
54
|
};
|
|
46
55
|
myNdla: {
|
|
47
56
|
resources: string;
|
|
57
|
+
resources_plural: string;
|
|
48
58
|
folders: string;
|
|
59
|
+
folders_plural: string;
|
|
49
60
|
folder: string;
|
|
50
61
|
myFolders: string;
|
|
51
62
|
myTags: string;
|
|
52
63
|
newFolder: string;
|
|
64
|
+
newFolderUnder: string;
|
|
53
65
|
myAccount: string;
|
|
54
66
|
favourites: string;
|
|
55
67
|
help: string;
|
|
68
|
+
more: string;
|
|
69
|
+
listView: string;
|
|
70
|
+
detailView: string;
|
|
71
|
+
shortView: string;
|
|
72
|
+
myPage: {
|
|
73
|
+
myPage: string;
|
|
74
|
+
deleteAccount: string;
|
|
75
|
+
logout: string;
|
|
76
|
+
welcome: string;
|
|
77
|
+
read: {
|
|
78
|
+
our: string;
|
|
79
|
+
ours: string;
|
|
80
|
+
};
|
|
81
|
+
privacy: string;
|
|
82
|
+
questions: {
|
|
83
|
+
question: string;
|
|
84
|
+
ask: string;
|
|
85
|
+
};
|
|
86
|
+
wishToDelete: string;
|
|
87
|
+
terms: string;
|
|
88
|
+
newFavourite: string;
|
|
89
|
+
feide: string;
|
|
90
|
+
resource: {
|
|
91
|
+
addToMyNdla: string;
|
|
92
|
+
addedToMyNdla: string;
|
|
93
|
+
};
|
|
94
|
+
storageInfo: {
|
|
95
|
+
title: string;
|
|
96
|
+
text: string;
|
|
97
|
+
};
|
|
98
|
+
folderInfo: {
|
|
99
|
+
title: string;
|
|
100
|
+
text: string;
|
|
101
|
+
};
|
|
102
|
+
tagInfo: {
|
|
103
|
+
title: string;
|
|
104
|
+
text: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
snackbar: {
|
|
109
|
+
close: string;
|
|
56
110
|
};
|
|
57
111
|
labels: {
|
|
58
112
|
category: string;
|
|
@@ -69,6 +123,19 @@ declare const messages: {
|
|
|
69
123
|
contact: string;
|
|
70
124
|
help: string;
|
|
71
125
|
};
|
|
126
|
+
treeStructure: {
|
|
127
|
+
createFolder: string;
|
|
128
|
+
newFolder: {
|
|
129
|
+
placeholder: string;
|
|
130
|
+
defaultName: string;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
tagSelector: {
|
|
134
|
+
placeholder: string;
|
|
135
|
+
removeTag: string;
|
|
136
|
+
hideAllTags: string;
|
|
137
|
+
showAllTags: string;
|
|
138
|
+
};
|
|
72
139
|
htmlTitles: {
|
|
73
140
|
titleTemplate: string;
|
|
74
141
|
welcomePage: string;
|
|
@@ -28,6 +28,19 @@ exports.contentTypes = contentTypes;
|
|
|
28
28
|
var titleTemplate = ' - NDLA';
|
|
29
29
|
|
|
30
30
|
var messages = _objectSpread(_objectSpread({
|
|
31
|
+
treeStructure: {
|
|
32
|
+
createFolder: 'Lag mappe',
|
|
33
|
+
newFolder: {
|
|
34
|
+
placeholder: 'Skriv navn på mappe',
|
|
35
|
+
defaultName: 'Ny mappe'
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
tagSelector: {
|
|
39
|
+
placeholder: 'Tilknytt tag',
|
|
40
|
+
removeTag: 'Ta vekk tilknytning til {{name}}',
|
|
41
|
+
hideAllTags: 'Skjul alle tagger',
|
|
42
|
+
showAllTags: 'Vis alle tagger'
|
|
43
|
+
},
|
|
31
44
|
htmlTitles: {
|
|
32
45
|
titleTemplate: titleTemplate,
|
|
33
46
|
welcomePage: "Forsiden".concat(titleTemplate),
|
|
@@ -906,6 +919,15 @@ var messages = _objectSpread(_objectSpread({
|
|
|
906
919
|
},
|
|
907
920
|
resource: {
|
|
908
921
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.'
|
|
922
|
+
},
|
|
923
|
+
primarySchool: 'Hovudskule',
|
|
924
|
+
name: 'Namn',
|
|
925
|
+
mail: 'E-post',
|
|
926
|
+
username: 'Brukarnamn',
|
|
927
|
+
groupTypes: {
|
|
928
|
+
basic: 'Basisgruppe',
|
|
929
|
+
teaching: 'Undervisningsgruppe',
|
|
930
|
+
other: 'Andre grupper'
|
|
909
931
|
}
|
|
910
932
|
},
|
|
911
933
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
@@ -918,15 +940,60 @@ var messages = _objectSpread(_objectSpread({
|
|
|
918
940
|
close: 'Lukk faktaboks'
|
|
919
941
|
},
|
|
920
942
|
myNdla: {
|
|
921
|
-
resources: '
|
|
922
|
-
|
|
943
|
+
resources: '{{count}} ressurs',
|
|
944
|
+
resources_plural: '{{count}} ressurser',
|
|
945
|
+
folders: '{{count}} mappe',
|
|
946
|
+
folders_plural: '{{count}} mapper',
|
|
923
947
|
folder: 'Mappe',
|
|
924
948
|
myFolders: 'Mine mapper',
|
|
925
949
|
myTags: 'Mine tags',
|
|
926
950
|
newFolder: 'Ny mappe',
|
|
951
|
+
newFolderUnder: 'Lag ny mappe under {{folderName}}',
|
|
927
952
|
myAccount: 'Min konto',
|
|
928
953
|
favourites: 'Favoritter',
|
|
929
|
-
help: 'Hjelp'
|
|
954
|
+
help: 'Hjelp',
|
|
955
|
+
more: 'Flere valg',
|
|
956
|
+
listView: 'Listevisning',
|
|
957
|
+
detailView: 'Detaljrik listevisning',
|
|
958
|
+
shortView: 'Kort visning',
|
|
959
|
+
myPage: {
|
|
960
|
+
myPage: 'Min side',
|
|
961
|
+
deleteAccount: 'Slett Min NDLA',
|
|
962
|
+
logout: 'Logg ut av Min NDLA',
|
|
963
|
+
welcome: 'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
964
|
+
read: {
|
|
965
|
+
our: 'Les våre',
|
|
966
|
+
ours: 'Les vår'
|
|
967
|
+
},
|
|
968
|
+
privacy: 'personvernerklæring her',
|
|
969
|
+
questions: {
|
|
970
|
+
question: 'Lurer du på noe?',
|
|
971
|
+
ask: 'Spør oss i chatten'
|
|
972
|
+
},
|
|
973
|
+
wishToDelete: 'Ønsker du ikke ha brukerprofil hos oss lengre?',
|
|
974
|
+
terms: 'vilkår for bruk',
|
|
975
|
+
newFavourite: 'Nylig lagt til',
|
|
976
|
+
feide: 'Dette henter vi om deg fra Feide',
|
|
977
|
+
resource: {
|
|
978
|
+
addToMyNdla: 'Legg i Min NDLA',
|
|
979
|
+
addedToMyNdla: 'Lagt i Min NDLA'
|
|
980
|
+
},
|
|
981
|
+
storageInfo: {
|
|
982
|
+
title: 'Slik lagrer du dine favorittressurser fra NDLA',
|
|
983
|
+
text: 'Når du ønsker å lagre en ressurs, kan du gjøre dette ved å klikke på hjertet øverst til høyre på siden. Du vil da få mulighet til å lagre ressursen i en mappe.'
|
|
984
|
+
},
|
|
985
|
+
folderInfo: {
|
|
986
|
+
title: 'Slik organiserer du dine favorittressurser i mapper',
|
|
987
|
+
text: 'Du kommer til mappeoversikten din ved å klikke på mine mapper i menyen til venstre. Her kan du opprette nye mapper og undermapper. Du kan også opprette en ny mappe i dialogvinduet som kommer når du klikker på et hjerte i en ressurs.'
|
|
988
|
+
},
|
|
989
|
+
tagInfo: {
|
|
990
|
+
title: 'Slik tagger du dine favorittressurser',
|
|
991
|
+
text: 'Når du lagrer en ressurs får du mulighet til å tagge ressursen med et nøkkelord. Du kan senere bruke taggene til å finne tilbake til ressurser på tvers av mapper. Ved å velge mine tagger i venstremenyen får du oversikt over alle taggene du har brukt og du kan også her se hvilke ressurser som du har tagget med det bestemte nøkkelordet.'
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
},
|
|
995
|
+
snackbar: {
|
|
996
|
+
close: 'Lukk melding'
|
|
930
997
|
},
|
|
931
998
|
labels: {
|
|
932
999
|
category: 'Kategori',
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.1.0",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"types"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@ndla/button": "^2.
|
|
35
|
-
"@ndla/carousel": "^1.2.
|
|
34
|
+
"@ndla/button": "^2.3.0",
|
|
35
|
+
"@ndla/carousel": "^1.2.8",
|
|
36
36
|
"@ndla/core": "^2.1.1",
|
|
37
37
|
"@ndla/hooks": "^1.1.4",
|
|
38
|
-
"@ndla/icons": "^1.
|
|
39
|
-
"@ndla/licenses": "^4.1.
|
|
40
|
-
"@ndla/modal": "^1.2.
|
|
41
|
-
"@ndla/notion": "^3.1.
|
|
42
|
-
"@ndla/safelink": "^2.0.
|
|
38
|
+
"@ndla/icons": "^1.8.0",
|
|
39
|
+
"@ndla/licenses": "^4.1.4",
|
|
40
|
+
"@ndla/modal": "^1.2.9",
|
|
41
|
+
"@ndla/notion": "^3.1.11",
|
|
42
|
+
"@ndla/safelink": "^2.0.3",
|
|
43
43
|
"@ndla/switch": "^0.1.5",
|
|
44
|
-
"@ndla/tabs": "^1.1.
|
|
45
|
-
"@ndla/tooltip": "^0.
|
|
44
|
+
"@ndla/tabs": "^1.1.7",
|
|
45
|
+
"@ndla/tooltip": "^2.0.0",
|
|
46
46
|
"@ndla/util": "^3.0.0",
|
|
47
47
|
"@reach/menu-button": "^0.16.2",
|
|
48
48
|
"@reach/slider": "^0.16.0",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"publishConfig": {
|
|
82
82
|
"access": "public"
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "9abe501a75c1b4f3c7602ff78cc36c916be45032"
|
|
85
85
|
}
|
package/src/Article/Article.tsx
CHANGED
|
@@ -14,10 +14,12 @@ import styled from '@emotion/styled';
|
|
|
14
14
|
|
|
15
15
|
import { useIntersectionObserver } from '@ndla/hooks';
|
|
16
16
|
import { resizeObserver } from '@ndla/util';
|
|
17
|
+
import { spacing, spacingUnit, mq, breakpoints } from '@ndla/core';
|
|
17
18
|
import { Article as ArticleType, Locale } from '../types';
|
|
18
19
|
import ArticleFootNotes from './ArticleFootNotes';
|
|
19
20
|
import ArticleContent from './ArticleContent';
|
|
20
21
|
import ArticleByline from './ArticleByline';
|
|
22
|
+
import ArticleFavoritesButton from './ArticleFavoritesButton';
|
|
21
23
|
import LayoutItem from '../Layout';
|
|
22
24
|
import ArticleHeaderWrapper from './ArticleHeaderWrapper';
|
|
23
25
|
import ArticleNotions, { NotionRelatedContent } from './ArticleNotions';
|
|
@@ -97,6 +99,22 @@ const MSGboxWrapper = styled.div`
|
|
|
97
99
|
margin-bottom: 50px;
|
|
98
100
|
`;
|
|
99
101
|
|
|
102
|
+
const ArticleFavoritesButtonWrapper = styled.div`
|
|
103
|
+
display: flex;
|
|
104
|
+
justify-content: flex-end;
|
|
105
|
+
transform: translate(${spacing.xsmall}, -${spacing.normal});
|
|
106
|
+
height: 0;
|
|
107
|
+
${mq.range({ from: breakpoints.tablet })} {
|
|
108
|
+
transform: translate(${spacing.normal}, -${spacing.medium});
|
|
109
|
+
}
|
|
110
|
+
${mq.range({ from: breakpoints.tabletWide })} {
|
|
111
|
+
transform: translate(${spacing.large}, -${spacing.medium});
|
|
112
|
+
}
|
|
113
|
+
${mq.range({ from: breakpoints.desktop })} {
|
|
114
|
+
transform: translate(${spacingUnit * 5.5}px, -${spacing.medium});
|
|
115
|
+
}
|
|
116
|
+
`;
|
|
117
|
+
|
|
100
118
|
type Props = {
|
|
101
119
|
article: ArticleType;
|
|
102
120
|
icon?: ReactNode;
|
|
@@ -117,6 +135,8 @@ type Props = {
|
|
|
117
135
|
printUrl?: string;
|
|
118
136
|
notions?: { list: ConceptNotionType[]; related: NotionRelatedContent[] };
|
|
119
137
|
accessMessage?: string;
|
|
138
|
+
isFavorite?: boolean;
|
|
139
|
+
onToggleAddToFavorites?: (id: string, add: boolean) => void;
|
|
120
140
|
};
|
|
121
141
|
|
|
122
142
|
const getArticleContent = (content: any, locale: Locale) => {
|
|
@@ -147,6 +167,8 @@ export const Article = ({
|
|
|
147
167
|
printUrl,
|
|
148
168
|
renderMarkdown,
|
|
149
169
|
accessMessage,
|
|
170
|
+
onToggleAddToFavorites,
|
|
171
|
+
isFavorite,
|
|
150
172
|
}: Props) => {
|
|
151
173
|
const [articleRef, { entry }] = useIntersectionObserver({
|
|
152
174
|
root: null,
|
|
@@ -196,6 +218,15 @@ export const Article = ({
|
|
|
196
218
|
</MSGboxWrapper>
|
|
197
219
|
)}
|
|
198
220
|
<ArticleHeaderWrapper competenceGoals={competenceGoals} competenceGoalTypes={competenceGoalTypes}>
|
|
221
|
+
{onToggleAddToFavorites && (
|
|
222
|
+
<ArticleFavoritesButtonWrapper>
|
|
223
|
+
<ArticleFavoritesButton
|
|
224
|
+
articleId={id}
|
|
225
|
+
isFavorite={isFavorite}
|
|
226
|
+
onToggleAddToFavorites={onToggleAddToFavorites}
|
|
227
|
+
/>
|
|
228
|
+
</ArticleFavoritesButtonWrapper>
|
|
229
|
+
)}
|
|
199
230
|
<ArticleTitle icon={icon} label={messages.label}>
|
|
200
231
|
{title}
|
|
201
232
|
</ArticleTitle>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022-present, NDLA.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the GPLv3 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { IconButtonDualStates } from '@ndla/button';
|
|
11
|
+
import { Heart, HeartOutline } from '@ndla/icons/action';
|
|
12
|
+
import Tooltip from '@ndla/tooltip';
|
|
13
|
+
import { useTranslation } from 'react-i18next';
|
|
14
|
+
|
|
15
|
+
export interface Props {
|
|
16
|
+
isFavorite?: boolean;
|
|
17
|
+
onToggleAddToFavorites: (id: string, add: boolean) => void;
|
|
18
|
+
articleId: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const ArticleFavoritesButton = ({ isFavorite, onToggleAddToFavorites, articleId }: Props) => {
|
|
22
|
+
const { t } = useTranslation();
|
|
23
|
+
const removeFromFavoritesLabel = t('myNdla.resource.addToMyNdla');
|
|
24
|
+
const addToFavoritesLabel = t('myNdla.resource.addedToMyNdla');
|
|
25
|
+
return (
|
|
26
|
+
<Tooltip tooltip={isFavorite ? removeFromFavoritesLabel : addToFavoritesLabel}>
|
|
27
|
+
<IconButtonDualStates
|
|
28
|
+
ariaLabelActive={addToFavoritesLabel}
|
|
29
|
+
ariaLabelInActive={removeFromFavoritesLabel}
|
|
30
|
+
activeIcon={<Heart />}
|
|
31
|
+
inactiveIcon={<HeartOutline />}
|
|
32
|
+
active={isFavorite}
|
|
33
|
+
size="small"
|
|
34
|
+
onClick={() => onToggleAddToFavorites(articleId, !isFavorite)}
|
|
35
|
+
/>
|
|
36
|
+
</Tooltip>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export default ArticleFavoritesButton;
|
package/src/Article/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ import ArticleContent from './ArticleContent';
|
|
|
12
12
|
import ArticleFootNotes from './ArticleFootNotes';
|
|
13
13
|
import ArticleHeaderWrapper from './ArticleHeaderWrapper';
|
|
14
14
|
import ArticleSideBar from './ArticleSideBar';
|
|
15
|
+
import ArticleFavoritesButton from './ArticleFavoritesButton';
|
|
15
16
|
|
|
16
17
|
export {
|
|
17
18
|
ArticleByline,
|
|
@@ -22,5 +23,6 @@ export {
|
|
|
22
23
|
ArticleTitle,
|
|
23
24
|
ArticleIntroduction,
|
|
24
25
|
ArticleWrapper,
|
|
26
|
+
ArticleFavoritesButton,
|
|
25
27
|
};
|
|
26
28
|
export default Article;
|