1
1
/*
2
2
* This file is part of Invenio.
3
3
* Copyright (C) 2022 CERN.
4
+ * Copyright (C) 2024 Northwestern University.
4
5
*
5
6
* Invenio is free software; you can redistribute it and/or modify it
6
7
* under the terms of the MIT License; see LICENSE file for more details.
7
8
*/
8
9
9
- import { createSearchAppInit } from "@js/invenio_search_ui" ;
10
- import { parametrize , overrideStore } from "react-overridable" ;
11
- import { DropdownSort } from "@js/invenio_search_ui/components" ;
12
- import { InvitationsContextProvider as ContextProvider } from "../../api/invitations/InvitationsContextProvider" ;
13
- import { InvitationResultItem } from "./InvitationResultItem" ;
14
- import { InvitationsResults } from "./InvitationsResults" ;
15
- import { InvitationsResultsContainer } from "./InvitationsResultsContainer" ;
16
- import { InvitationsSearchBarElement } from "./InvitationsSearchBarElement" ;
17
- import { InvitationsSearchLayout } from "./InvitationsSearchLayout" ;
18
- import { InvitationsEmptyResults } from "./InvitationsEmptyResults" ;
10
+ import { RequestCancelButton } from "@js/invenio_requests/components/Buttons" ;
11
+ import { RequestCancelModalTrigger } from "@js/invenio_requests/components/ModalTriggers" ;
19
12
import {
20
13
SubmitStatus ,
21
14
DeleteStatus ,
@@ -24,6 +17,20 @@ import {
24
17
CancelStatus ,
25
18
ExpireStatus ,
26
19
} from "@js/invenio_requests/request" ;
20
+ import { createSearchAppInit } from "@js/invenio_search_ui" ;
21
+ import { DropdownSort } from "@js/invenio_search_ui/components" ;
22
+ import { i18next } from "@translations/invenio_communities/i18next" ;
23
+ import React from "react" ;
24
+ import { Trans } from "react-i18next" ;
25
+ import { parametrize , overrideStore } from "react-overridable" ;
26
+
27
+ import { InvitationsContextProvider as ContextProvider } from "../../api/invitations/InvitationsContextProvider" ;
28
+ import { MemberRequestsSearchBarElement } from "../MemberRequestsSearchBarElement" ;
29
+ import { InvitationsEmptyResults } from "./InvitationsEmptyResults" ;
30
+ import { InvitationResultItem } from "./InvitationResultItem" ;
31
+ import { InvitationsResults } from "./InvitationsResults" ;
32
+ import { InvitationsResultsContainer } from "./InvitationsResultsContainer" ;
33
+ import { InvitationsSearchLayout } from "./InvitationsSearchLayout" ;
27
34
28
35
const dataAttr = document . getElementById ( "community-invitations-search-root" ) . dataset ;
29
36
const community = JSON . parse ( dataAttr . community ) ;
@@ -49,6 +56,11 @@ const InvitationsSearchLayoutWithConfig = parametrize(InvitationsSearchLayout, {
49
56
appName : appName ,
50
57
} ) ;
51
58
59
+ const InvitationsSearchBarElement = parametrize ( MemberRequestsSearchBarElement , {
60
+ className : "invitation-searchbar" ,
61
+ placeholder : i18next . t ( "Search in invitations..." ) ,
62
+ } ) ;
63
+
52
64
const InvitationsContextProvider = parametrize ( ContextProvider , {
53
65
community : community ,
54
66
} ) ;
@@ -65,14 +77,25 @@ const InvitationsEmptyResultsWithCommunity = parametrize(InvitationsEmptyResults
65
77
rolesCanInvite : communitiesRolesCanInvite ,
66
78
} ) ;
67
79
80
+ const InvitationsRequestCancelButton = parametrize ( RequestCancelButton , {
81
+ content : i18next . t ( "Cancel invitation" ) ,
82
+ } ) ;
83
+
84
+ const InvitationsRequestActionModalCancelTitle = ( props ) => {
85
+ return < Trans defaults = "{{action}} invitation" values = { { action : "cancel" } } /> ;
86
+ } ;
87
+
68
88
const defaultComponents = {
69
89
[ `${ appName } .EmptyResults.element` ] : InvitationsEmptyResultsWithCommunity ,
70
- [ `${ appName } .ResultsList.item` ] : InvitationResultItemWithConfig ,
71
90
[ `${ appName } .SearchApp.layout` ] : InvitationsSearchLayoutWithConfig ,
72
91
[ `${ appName } .SearchBar.element` ] : InvitationsSearchBarElement ,
73
- [ `${ appName } .SearchApp.results` ] : InvitationsResults ,
74
- [ `${ appName } .ResultsList.container` ] : InvitationsResultsContainerWithConfig ,
75
92
[ `${ appName } .Sort.element` ] : DropdownSort ,
93
+ [ `${ appName } .ResultsList.container` ] : InvitationsResultsContainerWithConfig ,
94
+ [ `${ appName } .SearchApp.results` ] : InvitationsResults ,
95
+ [ `${ appName } .ResultsList.item` ] : InvitationResultItemWithConfig ,
96
+ "RequestActionModalTrigger.cancel" : RequestCancelModalTrigger ,
97
+ "RequestActionModal.title.cancel" : InvitationsRequestActionModalCancelTitle ,
98
+ "RequestActionButton.cancel" : InvitationsRequestCancelButton ,
76
99
[ `RequestStatus.layout.submitted` ] : SubmitStatus ,
77
100
[ `RequestStatus.layout.deleted` ] : DeleteStatus ,
78
101
[ `RequestStatus.layout.accepted` ] : AcceptStatus ,
0 commit comments