@kineticdata/react 5.1.2 → 6.0.1
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/assets/task/icons/drag-handle.svg +3 -0
- package/assets/task/icons/plus_small.svg +2 -4
- package/lib/apis/agent/adapters.js +16 -12
- package/lib/apis/agent/bridges.js +54 -41
- package/lib/apis/agent/handlers.js +51 -38
- package/lib/apis/core/activity.js +19 -11
- package/lib/apis/core/attributeDefinitions.js +54 -46
- package/lib/apis/core/attributeDefinitions.test.js +47 -55
- package/lib/apis/core/authentication.js +58 -63
- package/lib/apis/core/backgroundJobs.js +38 -30
- package/lib/apis/core/bridgeModelAttributeMappings.js +42 -34
- package/lib/apis/core/bridgeModelAttributes.js +47 -37
- package/lib/apis/core/bridgeModelMappings.js +42 -34
- package/lib/apis/core/bridgeModelQualificationMappings.js +42 -34
- package/lib/apis/core/bridgeModelQualifications.js +42 -34
- package/lib/apis/core/bridgeModels.js +56 -46
- package/lib/apis/core/bridgeModels.test.js +64 -80
- package/lib/apis/core/bridgedresources.js +64 -72
- package/lib/apis/core/bridgedresources.test.js +33 -30
- package/lib/apis/core/categories.js +59 -52
- package/lib/apis/core/categories.test.js +36 -33
- package/lib/apis/core/fileResources.js +41 -33
- package/lib/apis/core/filestores.js +42 -34
- package/lib/apis/core/formTypes.js +50 -44
- package/lib/apis/core/forms.js +53 -49
- package/lib/apis/core/forms.test.js +60 -74
- package/lib/apis/core/kapps.js +45 -39
- package/lib/apis/core/kapps.test.js +45 -52
- package/lib/apis/core/logs.js +20 -16
- package/lib/apis/core/memberships.js +23 -20
- package/lib/apis/core/meta.js +31 -19
- package/lib/apis/core/notices.js +17 -9
- package/lib/apis/core/oauthClients.js +49 -45
- package/lib/apis/core/platformComponents.js +73 -57
- package/lib/apis/core/platformItems.js +22 -13
- package/lib/apis/core/profile.js +28 -21
- package/lib/apis/core/profile.test.js +20 -17
- package/lib/apis/core/securityPolicyDefinitions.js +48 -41
- package/lib/apis/core/securityPolicyDefinitions.test.js +50 -60
- package/lib/apis/core/space.js +23 -16
- package/lib/apis/core/space.test.js +31 -38
- package/lib/apis/core/submissions.js +213 -186
- package/lib/apis/core/submissions.test.js +39 -36
- package/lib/apis/core/teams.js +51 -44
- package/lib/apis/core/teams.test.js +42 -39
- package/lib/apis/core/translations.js +123 -130
- package/lib/apis/core/translations.test.js +278 -368
- package/lib/apis/core/users.js +56 -49
- package/lib/apis/core/users.test.js +42 -39
- package/lib/apis/core/version.js +20 -11
- package/lib/apis/core/webApis.js +42 -34
- package/lib/apis/core/webhooks.js +48 -41
- package/lib/apis/core/webhooks.test.js +50 -60
- package/lib/apis/core/webhooksJobs.js +30 -26
- package/lib/apis/core/workflows.js +52 -44
- package/lib/apis/http.js +121 -80
- package/lib/apis/http.test.js +137 -38
- package/lib/apis/index.js +506 -50
- package/lib/apis/system/index.js +363 -215
- package/lib/apis/task/index.js +294 -227
- package/lib/components/agent/bridge/BridgeForm.js +50 -50
- package/lib/components/agent/bridge/BridgeTable.js +16 -9
- package/lib/components/agent/filestore/FilestoreForm.js +49 -48
- package/lib/components/agent/filestore/FilestoreTable.js +16 -9
- package/lib/components/agent/handler/AgentHandlerForm.js +24 -27
- package/lib/components/agent/handler/AgentHandlerTable.js +17 -10
- package/lib/components/common/AttributeSelect.js +15 -9
- package/lib/components/common/BridgeSelect.js +48 -43
- package/lib/components/common/ComponentConfigContext.js +9 -2
- package/lib/components/common/ContentEditable.js +36 -60
- package/lib/components/common/FormSelect.js +70 -58
- package/lib/components/common/NodeSelect.js +23 -19
- package/lib/components/common/Scroller.js +24 -23
- package/lib/components/common/StaticSelect.js +57 -50
- package/lib/components/common/TableInput.js +54 -57
- package/lib/components/common/TeamSelect.js +42 -39
- package/lib/components/common/ToastContainer.js +170 -0
- package/lib/components/common/Typeahead.js +121 -138
- package/lib/components/common/UserSelect.js +42 -41
- package/lib/components/common/authentication/AuthInterceptor.js +15 -19
- package/lib/components/common/authentication/AuthInterceptor.test.js +46 -64
- package/lib/components/common/authentication/AuthenticationContainer.js +350 -454
- package/lib/components/common/authentication/RequestInterceptor.js +16 -19
- package/lib/components/common/code_input/CodeInput.js +92 -122
- package/lib/components/common/code_input/draftHelpers.js +96 -90
- package/lib/components/common/code_input/languageHelpers.js +49 -47
- package/lib/components/common/code_input/languageHelpers.test.js +21 -16
- package/lib/components/common/defaults/Toast.js +26 -0
- package/lib/components/common/defaults/index.js +13 -0
- package/lib/components/core/CoreFormModal.js +26 -24
- package/lib/components/core/CoreModal.js +37 -31
- package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +24 -23
- package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +25 -18
- package/lib/components/core/bridge_model/BridgeModelForm.js +27 -37
- package/lib/components/core/bridge_model/BridgeModelTable.js +17 -10
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeForm.js +17 -16
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeTable.js +25 -21
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationForm.js +20 -20
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationTable.js +27 -22
- package/lib/components/core/category/CategoryForm.js +22 -22
- package/lib/components/core/category/CategoryTable.js +28 -16
- package/lib/components/core/core_form/CoreForm.js +209 -285
- package/lib/components/core/core_form/CoreForm.test.js +12 -10
- package/lib/components/core/core_form/defaults/index.js +52 -44
- package/lib/components/core/core_form/globals.js +14 -5
- package/lib/components/core/field_definition/FieldDefinitionForm.js +23 -21
- package/lib/components/core/field_definition/FieldDefinitionTable.js +26 -15
- package/lib/components/core/file_resource/FileResourceForm.js +38 -37
- package/lib/components/core/file_resource/FileResourceTable.js +16 -12
- package/lib/components/core/form/FormForm.js +56 -61
- package/lib/components/core/form/FormTable.js +47 -33
- package/lib/components/core/form_type/FormTypeForm.js +14 -13
- package/lib/components/core/form_type/FormTypeTable.js +15 -9
- package/lib/components/core/i18n/I18n.js +54 -61
- package/lib/components/core/i18n/I18nContext.js +9 -2
- package/lib/components/core/i18n/I18nProvider.js +40 -43
- package/lib/components/core/i18n/Moment.js +40 -50
- package/lib/components/core/index_definition/IndexDefinitionForm.js +23 -24
- package/lib/components/core/index_definition/IndexDefinitionTable.js +31 -16
- package/lib/components/core/index_job/IndexJobTable.js +20 -15
- package/lib/components/core/kapp/KappForm.js +57 -58
- package/lib/components/core/kapp/KappTable.js +34 -44
- package/lib/components/core/log/LogTable.js +42 -34
- package/lib/components/core/oauth_client/OAuthClientForm.js +17 -17
- package/lib/components/core/oauth_client/OAuthClientTable.js +12 -8
- package/lib/components/core/platform_component/AgentComponentForm.js +15 -15
- package/lib/components/core/platform_component/AgentComponentTable.js +10 -5
- package/lib/components/core/platform_component/TaskComponentForm.js +14 -14
- package/lib/components/core/profile/ProfileForm.js +40 -39
- package/lib/components/core/security_definition/SecurityDefinitionForm.js +28 -25
- package/lib/components/core/security_definition/SecurityDefinitionTable.js +27 -17
- package/lib/components/core/space/SpaceForm.js +79 -90
- package/lib/components/core/submission/DatastoreSubmissionFilters.js +39 -40
- package/lib/components/core/submission/DatastoreSubmissionTable.js +37 -34
- package/lib/components/core/submission/FormSubmissionFilters.js +79 -75
- package/lib/components/core/submission/FormSubmissionTable.js +64 -39
- package/lib/components/core/submission/KappSubmissionTable.js +67 -48
- package/lib/components/core/submission/SubmissionForm.js +126 -55
- package/lib/components/core/submission/SubmissionTable.js +24 -20
- package/lib/components/core/submission/helpers.js +37 -33
- package/lib/components/core/submission/helpers.test.js +69 -20
- package/lib/components/core/team/TeamForm.js +24 -21
- package/lib/components/core/team/TeamTable.js +27 -16
- package/lib/components/core/translation/ContextForm.js +13 -10
- package/lib/components/core/translation/ContextTable.js +13 -10
- package/lib/components/core/translation/EntryForm.js +27 -24
- package/lib/components/core/translation/EntryTable.js +19 -16
- package/lib/components/core/translation/LocaleForm.js +16 -13
- package/lib/components/core/translation/LocaleTable.js +12 -8
- package/lib/components/core/user/UserForm.js +38 -37
- package/lib/components/core/user/UserTable.js +42 -20
- package/lib/components/core/webapi/WebApiForm.js +87 -80
- package/lib/components/core/webapi/WebApiTable.js +28 -17
- package/lib/components/core/webhook/WebhookForm.js +33 -32
- package/lib/components/core/webhook/WebhookTable.js +41 -29
- package/lib/components/core/webhook_job/WebhookJobTable.js +58 -35
- package/lib/components/form/Form.helpers.js +182 -108
- package/lib/components/form/Form.js +467 -524
- package/lib/components/form/Form.models.js +39 -24
- package/lib/components/form/FormState.js +8 -5
- package/lib/components/form/KitchenSinkForm.js +135 -4
- package/lib/components/form/defaults/AttributesField.js +48 -59
- package/lib/components/form/defaults/CheckboxField.js +14 -6
- package/lib/components/form/defaults/CodeField.js +15 -7
- package/lib/components/form/defaults/FormButtons.js +12 -4
- package/lib/components/form/defaults/FormError.js +12 -4
- package/lib/components/form/defaults/FormField.js +15 -7
- package/lib/components/form/defaults/FormLayout.js +12 -4
- package/lib/components/form/defaults/FormMultiField.js +15 -7
- package/lib/components/form/defaults/PasswordField.js +14 -6
- package/lib/components/form/defaults/RadioField.js +15 -7
- package/lib/components/form/defaults/SampleTeamsRolesFIeld.js +17 -9
- package/lib/components/form/defaults/SelectField.js +16 -8
- package/lib/components/form/defaults/SelectMultiField.js +15 -7
- package/lib/components/form/defaults/TableField.js +14 -6
- package/lib/components/form/defaults/TeamField.js +15 -7
- package/lib/components/form/defaults/TeamMultiField.js +15 -7
- package/lib/components/form/defaults/TextField.js +14 -6
- package/lib/components/form/defaults/TextMultiField.js +26 -28
- package/lib/components/form/defaults/UserField.js +15 -7
- package/lib/components/form/defaults/UserMultiField.js +15 -7
- package/lib/components/form/defaults/index.js +48 -41
- package/lib/components/form/tests/Form.test.js +568 -864
- package/lib/components/form/tests/components.js +15 -25
- package/lib/components/form/tests/helpers.test.js +35 -33
- package/lib/components/index.js +1034 -135
- package/lib/components/system/SystemBackgroundTasksTable.js +14 -10
- package/lib/components/system/SystemCassandraForm.js +98 -0
- package/lib/components/system/SystemElasticSearchForm.js +98 -0
- package/lib/components/system/SystemFilestoreForm.js +36 -28
- package/lib/components/system/SystemForm.js +19 -16
- package/lib/components/system/SystemIngressForm.js +85 -36
- package/lib/components/system/SystemSecurityForm.js +17 -14
- package/lib/components/system/SystemSmtpForm.js +13 -13
- package/lib/components/system/SystemTaskAdapterForm.js +49 -21
- package/lib/components/system/SystemTrustedCertificateForm.js +40 -0
- package/lib/components/system/SystemTrustedCertificatesTable.js +74 -0
- package/lib/components/system/SystemUserForm.js +15 -14
- package/lib/components/system/helpers.js +281 -98
- package/lib/components/system/helpers.test.js +16 -12
- package/lib/components/system/spaces/SystemSpaceForm.js +25 -24
- package/lib/components/system/spaces/SystemTenantForm.js +112 -68
- package/lib/components/system/spaces/SystemTenantTable.js +12 -8
- package/lib/components/table/Table.js +295 -227
- package/lib/components/table/Table.redux.js +339 -355
- package/lib/components/table/Table.redux.test.js +49 -47
- package/lib/components/table/Table.test.js +146 -132
- package/lib/components/table/defaults/BodyCell.js +12 -6
- package/lib/components/table/defaults/BodyRow.js +10 -4
- package/lib/components/table/defaults/BooleanFilter.js +17 -11
- package/lib/components/table/defaults/ColumnControl.js +26 -0
- package/lib/components/table/defaults/EmptyBodyRow.js +12 -6
- package/lib/components/table/defaults/FilterLayout.js +17 -11
- package/lib/components/table/defaults/Footer.js +11 -5
- package/lib/components/table/defaults/FooterCell.js +10 -4
- package/lib/components/table/defaults/FooterRow.js +10 -4
- package/lib/components/table/defaults/Header.js +10 -4
- package/lib/components/table/defaults/HeaderCell.js +16 -10
- package/lib/components/table/defaults/HeaderRow.js +10 -4
- package/lib/components/table/defaults/PaginationControl.js +18 -9
- package/lib/components/table/defaults/TableBody.js +10 -4
- package/lib/components/table/defaults/TableLayout.js +12 -6
- package/lib/components/table/defaults/TextFilter.js +16 -10
- package/lib/components/table/defaults/index.js +43 -33
- package/lib/components/task/builder/Connector.js +100 -111
- package/lib/components/task/builder/ConnectorForm.js +17 -11
- package/lib/components/task/builder/Node.js +101 -83
- package/lib/components/task/builder/NodeForm.js +30 -27
- package/lib/components/task/builder/NodeParametersForm.js +27 -24
- package/lib/components/task/builder/SvgCanvas.js +67 -96
- package/lib/components/task/builder/SvgText.js +19 -134
- package/lib/components/task/builder/TaskDefinitionConfigForm.js +27 -22
- package/lib/components/task/builder/TreeBuilder.js +140 -115
- package/lib/components/task/builder/builder.redux.js +311 -326
- package/lib/components/task/builder/constants.js +94 -45
- package/lib/components/task/builder/helpers.js +184 -173
- package/lib/components/task/builder/helpers.test.js +20 -18
- package/lib/components/task/builder/models.js +121 -98
- package/lib/components/task/category/TaskCategoryForm.js +31 -29
- package/lib/components/task/category/TaskCategoryTable.js +12 -8
- package/lib/components/task/common/UsageTable.js +16 -12
- package/lib/components/task/engine/EngineSettingsForm.js +13 -11
- package/lib/components/task/errors/RunErrorTable.js +50 -27
- package/lib/components/task/errors/SystemErrorsTable.js +13 -9
- package/lib/components/task/handlers/HandlerForm.js +55 -55
- package/lib/components/task/handlers/HandlerTable.js +35 -19
- package/lib/components/task/handlers/MissingHandlerTable.js +12 -8
- package/lib/components/task/policy_rule/PolicyRuleForm.js +33 -32
- package/lib/components/task/policy_rule/PolicyRuleTable.js +12 -8
- package/lib/components/task/runs/CreateManualTriggerForm.js +17 -15
- package/lib/components/task/runs/RunTable.js +45 -29
- package/lib/components/task/runs/RunTaskTable.js +10 -6
- package/lib/components/task/sources/SourceForm.js +47 -47
- package/lib/components/task/sources/SourceTable.js +29 -18
- package/lib/components/task/triggers/TriggerTable.js +71 -41
- package/lib/components/task/workflows/LinkedWorkflowForm.js +48 -54
- package/lib/components/task/workflows/LinkedWorkflowTable.js +46 -26
- package/lib/components/task/workflows/MissingRoutineTable.js +12 -8
- package/lib/components/task/workflows/WorkflowForm.js +49 -44
- package/lib/components/task/workflows/WorkflowTable.js +47 -29
- package/lib/helpers/SearchBuilder.js +73 -127
- package/lib/helpers/SearchBuilder.test.js +184 -175
- package/lib/helpers/index.js +116 -74
- package/lib/index.js +87 -38
- package/lib/reducer.js +11 -3
- package/lib/saga.js +42 -38
- package/lib/store.js +59 -35
- package/package.json +17 -29
- package/proxyhelper.js +122 -57
- package/assets/discussions/images/avi_128.png +0 -0
- package/assets/discussions/images/excel_128.png +0 -0
- package/assets/discussions/images/html_128.png +0 -0
- package/assets/discussions/images/illustrator_128.png +0 -0
- package/assets/discussions/images/indesign_128.png +0 -0
- package/assets/discussions/images/movie_128.png +0 -0
- package/assets/discussions/images/mpeg_128.png +0 -0
- package/assets/discussions/images/pdf_128.png +0 -0
- package/assets/discussions/images/photoshop_128.png +0 -0
- package/assets/discussions/images/powerpoint_128.png +0 -0
- package/assets/discussions/images/txt_128.png +0 -0
- package/assets/discussions/images/unknown_128.png +0 -0
- package/assets/discussions/images/word_128.png +0 -0
- package/assets/discussions/styles/_discussion.scss +0 -506
- package/lib/apis/discussions/index.js +0 -395
- package/lib/apis/socket/index.js +0 -77
- package/lib/apis/socket/socket.js +0 -350
- package/lib/apis/socket/socket.test.js +0 -90
- package/lib/apis/socket/timer.js +0 -45
- package/lib/apis/socket/timer.test.js +0 -51
- package/lib/apis/socket/topic.js +0 -185
- package/lib/apis/topics/index.js +0 -19
- package/lib/components/discussions/ChatInputForm.js +0 -424
- package/lib/components/discussions/DateBanner.js +0 -10
- package/lib/components/discussions/Discussion.js +0 -202
- package/lib/components/discussions/DiscussionForm.js +0 -227
- package/lib/components/discussions/InvitationForm.js +0 -107
- package/lib/components/discussions/MessageHistory.js +0 -110
- package/lib/components/discussions/MessagesByDate.js +0 -40
- package/lib/components/discussions/MessagesList.js +0 -30
- package/lib/components/discussions/MoreMessagesBanner.js +0 -26
- package/lib/components/discussions/ScrollHelper.js +0 -84
- package/lib/components/discussions/SystemMessage.js +0 -88
- package/lib/components/discussions/SystemMessageGroup.js +0 -15
- package/lib/components/discussions/UserMessage.js +0 -163
- package/lib/components/discussions/UserMessageGroup.js +0 -34
- package/lib/components/discussions/redux.js +0 -178
- package/lib/components/discussions/sagas.js +0 -500
- package/lib/helpers/discussions/canManage.js +0 -30
- package/lib/helpers/discussions/canManage.test.js +0 -69
- package/lib/helpers/discussions/generateSystemMessageContent.js +0 -131
- package/lib/helpers/discussions/generateSystemMessageContent.test.js +0 -450
- package/lib/models/discussions.js +0 -76
- package/lib/models/index.js +0 -1
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import moment from 'moment';
|
|
3
|
-
import { partitionListBy } from '../../helpers';
|
|
4
|
-
import { MessagesByDate } from './MessagesByDate';
|
|
5
|
-
|
|
6
|
-
var getMessageDate = function getMessageDate(message) {
|
|
7
|
-
return moment(message.createdAt).format('YYYY-MM-DD');
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
var differentDate = function differentDate(m1, m2) {
|
|
11
|
-
return getMessageDate(m1) !== getMessageDate(m2);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export var MessagesList = function MessagesList(props) {
|
|
15
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
16
|
-
className: "messages-list",
|
|
17
|
-
"aria-label": "chat window",
|
|
18
|
-
role: "region"
|
|
19
|
-
}, /*#__PURE__*/React.createElement("h2", {
|
|
20
|
-
className: "sr-only"
|
|
21
|
-
}, "Chat window"), partitionListBy(differentDate, props.messages).map(function (messages, i) {
|
|
22
|
-
return /*#__PURE__*/React.createElement(MessagesByDate, {
|
|
23
|
-
key: i,
|
|
24
|
-
discussion: props.discussion,
|
|
25
|
-
profile: props.profile,
|
|
26
|
-
messages: messages,
|
|
27
|
-
actions: props.actions
|
|
28
|
-
});
|
|
29
|
-
}));
|
|
30
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export var MoreMessagesBanner = function MoreMessagesBanner(props) {
|
|
3
|
-
var title;
|
|
4
|
-
var subtitle;
|
|
5
|
-
|
|
6
|
-
if (props.loading) {
|
|
7
|
-
title = 'Loading More Messages';
|
|
8
|
-
subtitle = 'Please wait while we load more messages...';
|
|
9
|
-
} else {
|
|
10
|
-
if (props.hasMore) {
|
|
11
|
-
title = 'Load More Messages';
|
|
12
|
-
subtitle = 'Scroll to the top to load more messages...';
|
|
13
|
-
} else {
|
|
14
|
-
title = null;
|
|
15
|
-
subtitle = 'There are no more messages to load, you are at the beginning.';
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
20
|
-
className: "banner banner--more"
|
|
21
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
22
|
-
className: "banner__title"
|
|
23
|
-
}, title), /*#__PURE__*/React.createElement("div", {
|
|
24
|
-
className: "banner__subtitle"
|
|
25
|
-
}, subtitle));
|
|
26
|
-
};
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
-
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
3
|
-
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
4
|
-
import React from 'react';
|
|
5
|
-
var ScrollPositions = {
|
|
6
|
-
BOTTOM: 'bottom',
|
|
7
|
-
MIDDLE: 'middle',
|
|
8
|
-
TOP: 'top'
|
|
9
|
-
};
|
|
10
|
-
export var ScrollHelper = /*#__PURE__*/function (_React$Component) {
|
|
11
|
-
_inherits(ScrollHelper, _React$Component);
|
|
12
|
-
|
|
13
|
-
var _super = _createSuper(ScrollHelper);
|
|
14
|
-
|
|
15
|
-
function ScrollHelper(props) {
|
|
16
|
-
var _this;
|
|
17
|
-
|
|
18
|
-
_classCallCheck(this, ScrollHelper);
|
|
19
|
-
|
|
20
|
-
_this = _super.call(this, props);
|
|
21
|
-
|
|
22
|
-
_this.handleScroll = function (_ref) {
|
|
23
|
-
var target = _ref.target;
|
|
24
|
-
|
|
25
|
-
if (_this.helper !== target) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var scrollTop = target.scrollTop;
|
|
30
|
-
var nextPosition = null;
|
|
31
|
-
|
|
32
|
-
if (scrollTop === _this.helper.scrollHeight - _this.helper.clientHeight) {
|
|
33
|
-
nextPosition = ScrollPositions.BOTTOM;
|
|
34
|
-
} else if (scrollTop === 0) {
|
|
35
|
-
nextPosition = ScrollPositions.TOP;
|
|
36
|
-
} else {
|
|
37
|
-
nextPosition = ScrollPositions.MIDDLE;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (typeof _this.props.onScrollTo === 'function' && !(nextPosition === ScrollPositions.MIDDLE && _this.position === ScrollPositions.MIDDLE)) {
|
|
41
|
-
_this.props.onScrollTo(nextPosition);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
_this.position = nextPosition;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
_this.adjustScrollTop = function () {
|
|
48
|
-
if (_this.position === ScrollPositions.BOTTOM) {
|
|
49
|
-
_this.scrollToBottom();
|
|
50
|
-
} else if (_this.position === ScrollPositions.TOP) {
|
|
51
|
-
_this.helper.scrollTop = Math.max(0, _this.helper.scrollHeight - _this.lastScrollHeight);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
_this.lastScrollHeight = _this.helper.scrollHeight;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
_this.componentDidMount = function () {
|
|
58
|
-
return _this.adjustScrollTop();
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
_this.componentDidUpdate = function () {
|
|
62
|
-
return _this.adjustScrollTop();
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
_this.scrollToBottom = function () {
|
|
66
|
-
_this.helper.scrollTop = _this.helper.scrollHeight - _this.helper.clientHeight;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
_this.render = function () {
|
|
70
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
71
|
-
ref: function ref(el) {
|
|
72
|
-
return _this.helper = el;
|
|
73
|
-
},
|
|
74
|
-
onScroll: _this.handleScroll,
|
|
75
|
-
className: "discussion-messages-wrapper"
|
|
76
|
-
}, _this.props.children);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
_this.position = ScrollPositions.BOTTOM;
|
|
80
|
-
return _this;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return ScrollHelper;
|
|
84
|
-
}(React.Component);
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { List, Range } from 'immutable';
|
|
3
|
-
import moment from 'moment';
|
|
4
|
-
import generateSystemMessageContent from '../../helpers/discussions/generateSystemMessageContent';
|
|
5
|
-
export var PlainMessageContent = function PlainMessageContent(_ref) {
|
|
6
|
-
var content = _ref.content;
|
|
7
|
-
var plainContent = content.map(function (token) {
|
|
8
|
-
switch (token.type) {
|
|
9
|
-
case 'attachment':
|
|
10
|
-
return token.value.filename;
|
|
11
|
-
|
|
12
|
-
case 'team':
|
|
13
|
-
return token.value.name;
|
|
14
|
-
|
|
15
|
-
case 'text':
|
|
16
|
-
return token.value.trim();
|
|
17
|
-
|
|
18
|
-
case 'user':
|
|
19
|
-
return token.value.unknown ? '*Unknown*' : token.value.displayName;
|
|
20
|
-
|
|
21
|
-
default:
|
|
22
|
-
return "(".concat(token.type.toUpperCase(), ")");
|
|
23
|
-
}
|
|
24
|
-
}).join(' ');
|
|
25
|
-
return plainContent.length > 50 ? plainContent.substring(0, 50) + '...' : plainContent;
|
|
26
|
-
};
|
|
27
|
-
export var SystemMessageContent = function SystemMessageContent(_ref2) {
|
|
28
|
-
var actions = _ref2.actions,
|
|
29
|
-
content = _ref2.content;
|
|
30
|
-
return List(content).map(function (token, i) {
|
|
31
|
-
switch (token.type) {
|
|
32
|
-
case 'message':
|
|
33
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
34
|
-
key: i,
|
|
35
|
-
className: "message-token",
|
|
36
|
-
onClick: function onClick() {
|
|
37
|
-
return actions.history(token.value);
|
|
38
|
-
}
|
|
39
|
-
}, "[ ", /*#__PURE__*/React.createElement(PlainMessageContent, {
|
|
40
|
-
key: i,
|
|
41
|
-
content: token.value.content
|
|
42
|
-
}), " ]");
|
|
43
|
-
|
|
44
|
-
case 'team':
|
|
45
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
46
|
-
key: i,
|
|
47
|
-
className: "team-token"
|
|
48
|
-
}, token.value.name);
|
|
49
|
-
|
|
50
|
-
case 'text':
|
|
51
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
52
|
-
key: i,
|
|
53
|
-
className: "text-token"
|
|
54
|
-
}, token.value.trim());
|
|
55
|
-
|
|
56
|
-
case 'user':
|
|
57
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
58
|
-
key: i,
|
|
59
|
-
className: "user-token"
|
|
60
|
-
}, token.value.unknown ? '*Unknown*' : token.value.displayName);
|
|
61
|
-
|
|
62
|
-
case 'attachment':
|
|
63
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
64
|
-
key: i,
|
|
65
|
-
className: "attachment-token"
|
|
66
|
-
}, token.value.name);
|
|
67
|
-
|
|
68
|
-
default:
|
|
69
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
70
|
-
key: i
|
|
71
|
-
}, "(", token.type.toUpperCase(), ")");
|
|
72
|
-
}
|
|
73
|
-
}).zip(Range().map(function (i) {
|
|
74
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
75
|
-
key: "space-".concat(i)
|
|
76
|
-
}, "\xA0");
|
|
77
|
-
})).toArray();
|
|
78
|
-
};
|
|
79
|
-
export var SystemMessage = function SystemMessage(props) {
|
|
80
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
81
|
-
className: "system-message"
|
|
82
|
-
}, /*#__PURE__*/React.createElement(SystemMessageContent, {
|
|
83
|
-
actions: props.actions,
|
|
84
|
-
content: props.message.action ? generateSystemMessageContent(props.message.action, props.message.content) : props.message.content
|
|
85
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
86
|
-
className: "timestamp"
|
|
87
|
-
}, moment(props.message.createdAt).format('h:mma')));
|
|
88
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { SystemMessage } from './SystemMessage';
|
|
3
|
-
export var SystemMessageGroup = function SystemMessageGroup(props) {
|
|
4
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
5
|
-
className: "messages__grouping"
|
|
6
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
7
|
-
className: "system-message-list"
|
|
8
|
-
}, props.messages.map(function (message) {
|
|
9
|
-
return /*#__PURE__*/React.createElement(SystemMessage, {
|
|
10
|
-
key: message.id,
|
|
11
|
-
message: message,
|
|
12
|
-
actions: props.actions
|
|
13
|
-
});
|
|
14
|
-
})));
|
|
15
|
-
};
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import React, { Fragment } from 'react';
|
|
2
|
-
import { bundle } from '../../helpers';
|
|
3
|
-
import Markdown from 'react-markdown';
|
|
4
|
-
import classnames from 'classnames'; // Import images used.
|
|
5
|
-
|
|
6
|
-
import aviIcon from '../../../assets/discussions/images/avi_128.png';
|
|
7
|
-
import excelIcon from '../../../assets/discussions/images/excel_128.png';
|
|
8
|
-
import htmlIcon from '../../../assets/discussions/images/html_128.png';
|
|
9
|
-
import illustratorIcon from '../../../assets/discussions/images/illustrator_128.png';
|
|
10
|
-
import movieIcon from '../../../assets/discussions/images/movie_128.png';
|
|
11
|
-
import indesignIcon from '../../../assets/discussions/images/indesign_128.png';
|
|
12
|
-
import mpegIcon from '../../../assets/discussions/images/mpeg_128.png';
|
|
13
|
-
import pdfIcon from '../../../assets/discussions/images/pdf_128.png';
|
|
14
|
-
import photoshopIcon from '../../../assets/discussions/images/photoshop_128.png';
|
|
15
|
-
import powerpointIcon from '../../../assets/discussions/images/powerpoint_128.png';
|
|
16
|
-
import txtIcon from '../../../assets/discussions/images/txt_128.png';
|
|
17
|
-
import unknownIcon from '../../../assets/discussions/images/unknown_128.png';
|
|
18
|
-
import wordIcon from '../../../assets/discussions/images/word_128.png';
|
|
19
|
-
var AVAILABLE_ICONS = {
|
|
20
|
-
avi: aviIcon,
|
|
21
|
-
excel: excelIcon,
|
|
22
|
-
html: htmlIcon,
|
|
23
|
-
illustrator: illustratorIcon,
|
|
24
|
-
movie: movieIcon,
|
|
25
|
-
indesign: indesignIcon,
|
|
26
|
-
mpeg: mpegIcon,
|
|
27
|
-
pdf: pdfIcon,
|
|
28
|
-
photoshop: photoshopIcon,
|
|
29
|
-
powerpoint: powerpointIcon,
|
|
30
|
-
txt: txtIcon,
|
|
31
|
-
unknown: unknownIcon,
|
|
32
|
-
word: wordIcon
|
|
33
|
-
};
|
|
34
|
-
export var produceContent = function produceContent(message) {
|
|
35
|
-
return message.content.reduce(function (content, token) {
|
|
36
|
-
switch (token.type) {
|
|
37
|
-
case 'team':
|
|
38
|
-
return "".concat(content).concat(token.value.name);
|
|
39
|
-
|
|
40
|
-
case 'user':
|
|
41
|
-
return "".concat(content).concat(token.value.displayName);
|
|
42
|
-
|
|
43
|
-
case 'attachment':
|
|
44
|
-
return content;
|
|
45
|
-
|
|
46
|
-
case 'unknownUser':
|
|
47
|
-
return 'an unknown user';
|
|
48
|
-
|
|
49
|
-
default:
|
|
50
|
-
return "".concat(content).concat(token.value);
|
|
51
|
-
}
|
|
52
|
-
}, '');
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
var editedClass = function editedClass(message) {
|
|
56
|
-
return message.createdAt !== message.updatedAt ? 'is-edited' : '';
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
var SUPPORTED_IMAGE_MIMES = ['image/gif', 'image/png', 'image/jpeg', 'image/bmp', 'image/webp', 'image/x-icon', 'image/vnd.microsoft.icon'];
|
|
60
|
-
|
|
61
|
-
var thumbnailUrl = function thumbnailUrl(discussion, message, attachment) {
|
|
62
|
-
return SUPPORTED_IMAGE_MIMES.includes(attachment.contentType) ? "".concat(bundle.spaceLocation(), "/app/discussions/api/v1/discussions/").concat(discussion.id, "/messages/").concat(message.id, "/files/").concat(attachment.thumbnailId, "/").concat(encodeURIComponent(attachment.filename.replace(/ /g, '_'))) : attachmentIcon(attachment);
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
var attachmentUrl = function attachmentUrl(discussion, message, attachment) {
|
|
66
|
-
return "".concat(bundle.spaceLocation(), "/app/discussions/api/v1/discussions/").concat(discussion.id, "/messages/").concat(message.id, "/files/").concat(attachment.documentId, "/").concat(encodeURIComponent(attachment.filename.replace(/ /g, '_')));
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
var attachmentIcon = function attachmentIcon(attachment) {
|
|
70
|
-
var iconType = attachment.contentType.split('/')[1];
|
|
71
|
-
|
|
72
|
-
if (Object.keys(AVAILABLE_ICONS).includes(iconType)) {
|
|
73
|
-
return AVAILABLE_ICONS[iconType];
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return AVAILABLE_ICONS['unknown'];
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
var formatFileSize = function formatFileSize(fileSize) {
|
|
80
|
-
if (fileSize < 1024) return fileSize + ' bytes';else if (fileSize < 1048576) return (fileSize / 1024).toFixed(2) + ' kb';else if (fileSize < 1073741824) return (fileSize / 1048576).toFixed(2) + ' mb';else return (fileSize / 1073741824).toFixed(2) + ' gb';
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
export var TextMessage = function TextMessage(_ref) {
|
|
84
|
-
var discussion = _ref.discussion,
|
|
85
|
-
message = _ref.message;
|
|
86
|
-
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Markdown, {
|
|
87
|
-
source: produceContent(message),
|
|
88
|
-
skipHtml: true,
|
|
89
|
-
linkTarget: "_blank"
|
|
90
|
-
}), message.content.filter(function (c) {
|
|
91
|
-
return c.type === 'attachment';
|
|
92
|
-
}).map(function (attachment) {
|
|
93
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
94
|
-
key: attachment.value.documentId,
|
|
95
|
-
style: {
|
|
96
|
-
display: 'flex',
|
|
97
|
-
flexDirection: 'column',
|
|
98
|
-
paddingBottom: '0.5em'
|
|
99
|
-
}
|
|
100
|
-
}, /*#__PURE__*/React.createElement("a", {
|
|
101
|
-
href: attachmentUrl(discussion, message, attachment.value),
|
|
102
|
-
target: "_blank",
|
|
103
|
-
rel: "noopener noreferrer"
|
|
104
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
105
|
-
src: thumbnailUrl(discussion, message, attachment.value),
|
|
106
|
-
alt: attachment.value.filename
|
|
107
|
-
})), /*#__PURE__*/React.createElement("small", null, attachment.value.filename, " (", /*#__PURE__*/React.createElement("em", null, formatFileSize(attachment.value.size)), ")"));
|
|
108
|
-
}));
|
|
109
|
-
};
|
|
110
|
-
export var Message = function Message(_ref2) {
|
|
111
|
-
var discussion = _ref2.discussion,
|
|
112
|
-
message = _ref2.message,
|
|
113
|
-
actions = _ref2.actions;
|
|
114
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
115
|
-
className: "message ".concat(editedClass(message))
|
|
116
|
-
}, /*#__PURE__*/React.createElement(TextMessage, {
|
|
117
|
-
discussion: discussion,
|
|
118
|
-
message: message
|
|
119
|
-
}), actions && message.createdAt !== message.updatedAt && /*#__PURE__*/React.createElement("button", {
|
|
120
|
-
className: "btn btn-link",
|
|
121
|
-
onClick: function onClick() {
|
|
122
|
-
return actions.history(message);
|
|
123
|
-
}
|
|
124
|
-
}, /*#__PURE__*/React.createElement("em", null, "(Edited)")), message.parent && /*#__PURE__*/React.createElement("div", {
|
|
125
|
-
className: "message--parent"
|
|
126
|
-
}, message.parent.unknown ? /*#__PURE__*/React.createElement("div", {
|
|
127
|
-
className: "message message--missing"
|
|
128
|
-
}, "(Message missing)") : message.parent.omitted ? null : /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Message, {
|
|
129
|
-
discussion: discussion,
|
|
130
|
-
message: message.parent,
|
|
131
|
-
actions: actions
|
|
132
|
-
}), /*#__PURE__*/React.createElement("small", null, "\u2014 ", message.parent.createdBy.displayName || 'Unknown'))));
|
|
133
|
-
};
|
|
134
|
-
export var UserMessage = function UserMessage(_ref3) {
|
|
135
|
-
var discussion = _ref3.discussion,
|
|
136
|
-
message = _ref3.message,
|
|
137
|
-
profile = _ref3.profile,
|
|
138
|
-
actions = _ref3.actions;
|
|
139
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
140
|
-
className: classnames('message-list__item', {
|
|
141
|
-
editing: actions && actions.editing && actions.editing.id === message.id,
|
|
142
|
-
replying: actions && actions.replying && actions.replying.id === message.id
|
|
143
|
-
})
|
|
144
|
-
}, actions && /*#__PURE__*/React.createElement("ul", {
|
|
145
|
-
className: "message-list__actions meta"
|
|
146
|
-
}, /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("button", {
|
|
147
|
-
className: "btn btn-sm btn-link",
|
|
148
|
-
onClick: function onClick() {
|
|
149
|
-
return actions.reply(message);
|
|
150
|
-
}
|
|
151
|
-
}, "Reply")), message.createdBy.username === profile.username && /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("button", {
|
|
152
|
-
className: "btn btn-sm btn-link",
|
|
153
|
-
onClick: function onClick() {
|
|
154
|
-
return actions.edit(message);
|
|
155
|
-
}
|
|
156
|
-
}, "Edit"))), /*#__PURE__*/React.createElement("div", {
|
|
157
|
-
className: "message-bubble"
|
|
158
|
-
}, /*#__PURE__*/React.createElement(Message, {
|
|
159
|
-
discussion: discussion,
|
|
160
|
-
message: message,
|
|
161
|
-
actions: actions
|
|
162
|
-
})));
|
|
163
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import moment from 'moment';
|
|
3
|
-
import Avatar from 'react-avatar';
|
|
4
|
-
import { UserMessage } from './UserMessage';
|
|
5
|
-
export var UserMessageGroup = function UserMessageGroup(_ref) {
|
|
6
|
-
var discussion = _ref.discussion,
|
|
7
|
-
messages = _ref.messages,
|
|
8
|
-
profile = _ref.profile,
|
|
9
|
-
actions = _ref.actions;
|
|
10
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
11
|
-
className: "messages__grouping ".concat(messages.first().createdBy.username === profile.username ? 'is-mine' : 'is-other')
|
|
12
|
-
}, messages.first().createdBy.username !== profile.username && /*#__PURE__*/React.createElement(Avatar, {
|
|
13
|
-
size: 36,
|
|
14
|
-
email: messages.first().createdBy.email,
|
|
15
|
-
name: messages.first().createdBy.displayName,
|
|
16
|
-
round: true
|
|
17
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
18
|
-
className: "message-list"
|
|
19
|
-
}, messages.map(function (message) {
|
|
20
|
-
return /*#__PURE__*/React.createElement(UserMessage, {
|
|
21
|
-
key: message.id,
|
|
22
|
-
discussion: discussion,
|
|
23
|
-
message: message,
|
|
24
|
-
actions: actions,
|
|
25
|
-
profile: profile
|
|
26
|
-
});
|
|
27
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
28
|
-
className: "meta"
|
|
29
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
30
|
-
className: "author"
|
|
31
|
-
}, messages.last().createdBy.username === profile.username ? 'You' : messages.last().createdBy.displayName), /*#__PURE__*/React.createElement("span", {
|
|
32
|
-
className: "timestamp"
|
|
33
|
-
}, moment(messages.last().createdAt).format('h:mma')))));
|
|
34
|
-
};
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
|
|
3
|
-
var _regHandlers;
|
|
4
|
-
|
|
5
|
-
import { List } from 'immutable';
|
|
6
|
-
import { regHandlers } from '../../store';
|
|
7
|
-
import { createDiscussion, Discussion } from '../../models/discussions';
|
|
8
|
-
export var JOIN_DISCUSSION = '@kd/discussions/JOIN_DISCUSSION',
|
|
9
|
-
ADD_DISCUSSION = '@kd/discussions/ADD_DISCUSSION',
|
|
10
|
-
UPDATE_DISCUSSION = '@kd/discussions/UPDATE_DISCUSSION',
|
|
11
|
-
LEAVE_DISCUSSION = '@kd/discussions/LEAVE_DISCUSSION',
|
|
12
|
-
SET_DISCUSSION_ERROR = '@kd/discussions/SET_DISCUSSION_ERROR',
|
|
13
|
-
FETCH_MORE_MESSAGES = '@kd/discussions/FETCH_MORE_MESSAGES',
|
|
14
|
-
SET_MORE_MESSAGES = '@kd/discussions/SET_MORE_MESSAGES',
|
|
15
|
-
ADD_PARTICIPANT = '@kd/discussions/ADD_PARTICIPANT',
|
|
16
|
-
REMOVE_PARTICIPANT = '@kd/discussions/REMOVE_PARTICIPANT',
|
|
17
|
-
UPDATE_PARTICIPANT = '@kd/discussions/UPDATE_PARTICIPANT',
|
|
18
|
-
ADD_INVITATION = '@kd/discussions/ADD_INVITATION',
|
|
19
|
-
REMOVE_INVITATION = '@kd/discussions/REMOVE_INVITATION',
|
|
20
|
-
UPDATE_INVITATION = '@kd/discussions/UPDATE_INVITATION',
|
|
21
|
-
MESSAGE_UPDATE = '@kd/discussions/MESSAGE_UPDATE',
|
|
22
|
-
REMOVE_MESSAGE = '@kd/discussions/REMOVE_MESSAGE',
|
|
23
|
-
ADD_MESSAGE = '@kd/discussions/ADD_MESSAGE',
|
|
24
|
-
SEND_MESSAGE = '@kd/discussions/SEND_MESSAGE',
|
|
25
|
-
SEND_MESSAGE_UPDATE = '@kd/discussions/SEND_MESSAGE_UPDATE',
|
|
26
|
-
UPDATE_PRESENCE = '@kd/discussions/UPDATE_PRESENCE',
|
|
27
|
-
SET_TOPIC_STATUS = '@kd/discussions/SET_TOPIC_STATUS',
|
|
28
|
-
UNSUBSCRIBED = '@kd/discussions/UNSUBSCRIBED';
|
|
29
|
-
|
|
30
|
-
var invitationsMatch = function invitationsMatch(i1, i2) {
|
|
31
|
-
return i1.user && i2.user && i1.user.username === i2.user.username || i1.email && i2.email && i1.email === i2.email;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
var handleJoinDiscussion = function handleJoinDiscussion(state, _ref) {
|
|
35
|
-
var payload = _ref.payload;
|
|
36
|
-
return state.hasIn(['discussions', payload.id]) ? state : state.setIn(['discussions', payload.id], Discussion());
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
var handleUpsertDiscussion = function handleUpsertDiscussion(state, _ref2) {
|
|
40
|
-
var type = _ref2.type,
|
|
41
|
-
payload = _ref2.payload;
|
|
42
|
-
return state.updateIn(['discussions', payload.id], function (discussion) {
|
|
43
|
-
return discussion.mergeWith(function (prev, next, key) {
|
|
44
|
-
return ['topic', 'presences'].includes(key) || type === UPDATE_DISCUSSION && (key === 'messages' || key === 'nextPageToken') ? prev : next;
|
|
45
|
-
}, createDiscussion(payload));
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
var handleLeaveDiscussion = function handleLeaveDiscussion(state, _ref3) {
|
|
50
|
-
var payload = _ref3.payload;
|
|
51
|
-
return state.update('discussions', function (map) {
|
|
52
|
-
return map["delete"](payload);
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
var handleSetDiscussionError = function handleSetDiscussionError(state, _ref4) {
|
|
57
|
-
var payload = _ref4.payload;
|
|
58
|
-
return state.setIn(['discussions', payload.id, 'error'], payload.error);
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
var handleFetchMoreMessages = function handleFetchMoreMessages(state, _ref5) {
|
|
62
|
-
var payload = _ref5.payload;
|
|
63
|
-
return state.setIn(['discussions', payload, 'loadingMoreMessages'], true);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
var handleSetMoreMessages = function handleSetMoreMessages(state, _ref6) {
|
|
67
|
-
var payload = _ref6.payload;
|
|
68
|
-
return state.updateIn(['discussions', payload.id], function (discussion) {
|
|
69
|
-
return discussion.set('messagesLoading', false).set('loadingMoreMessages', false).update('messages', function (messages) {
|
|
70
|
-
return messages.concat(List(payload.messages));
|
|
71
|
-
}).set('nextPageToken', payload.nextPageToken);
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
var handleAddParticipant = function handleAddParticipant(state, _ref7) {
|
|
76
|
-
var payload = _ref7.payload;
|
|
77
|
-
return state.updateIn(['discussions', payload.id, 'participants'], function (participants) {
|
|
78
|
-
return participants.push(payload.participant);
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var handleRemoveParticipant = function handleRemoveParticipant(state, _ref8) {
|
|
83
|
-
var payload = _ref8.payload;
|
|
84
|
-
return state.updateIn(['discussions', payload.id, 'participants'], function (participants) {
|
|
85
|
-
return participants.filter(function (participant) {
|
|
86
|
-
return participant.user.username !== payload.participant.user.username;
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
var handleUpdateParticipant = function handleUpdateParticipant(state, _ref9) {
|
|
92
|
-
var payload = _ref9.payload;
|
|
93
|
-
return state.updateIn(['discussions', payload.id, 'participants'], function (participants) {
|
|
94
|
-
return participants.map(function (participant) {
|
|
95
|
-
return participant.user.username === payload.participant.user.username ? payload.participant : participant;
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
var handleAddInvitation = function handleAddInvitation(state, _ref10) {
|
|
101
|
-
var payload = _ref10.payload;
|
|
102
|
-
return state.updateIn(['discussions', payload.id, 'invitations'], function (invitations) {
|
|
103
|
-
return invitations.push(payload.invitation);
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var handleRemoveInvitation = function handleRemoveInvitation(state, _ref11) {
|
|
108
|
-
var payload = _ref11.payload;
|
|
109
|
-
return state.updateIn(['discussions', payload.id, 'invitations'], function (invitations) {
|
|
110
|
-
return invitations["delete"](invitations.findIndex(function (i) {
|
|
111
|
-
return invitationsMatch(i, payload.invitation);
|
|
112
|
-
}));
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
var handleUpdateInvitation = function handleUpdateInvitation(state, _ref12) {
|
|
117
|
-
var payload = _ref12.payload;
|
|
118
|
-
return state.updateIn(['discussions', payload.id, 'invitations'], function (invitations) {
|
|
119
|
-
return invitations.map(function (invitation) {
|
|
120
|
-
return invitationsMatch(invitation, payload.invitation) ? payload.invitation : invitation;
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
var handleMessageUpdate = function handleMessageUpdate(state, _ref13) {
|
|
126
|
-
var payload = _ref13.payload;
|
|
127
|
-
return state.updateIn(['discussions', payload.id, 'messages'], function (messages) {
|
|
128
|
-
return (// If the update is for a message we have, update it.
|
|
129
|
-
messages.map(function (message) {
|
|
130
|
-
return message.id === payload.message.id ? payload.message : message;
|
|
131
|
-
}) // If the update is for a parent of a message we have, update the parent.
|
|
132
|
-
.map(function (message) {
|
|
133
|
-
if (message.parent && message.parent.id === payload.message.id) {
|
|
134
|
-
message.parent = payload.message;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return message;
|
|
138
|
-
})
|
|
139
|
-
);
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
var handleRemoveMessage = function handleRemoveMessage(state, _ref14) {
|
|
144
|
-
var payload = _ref14.payload;
|
|
145
|
-
return state.updateIn(['discussions', payload.id, 'messages'], function (messages) {
|
|
146
|
-
return messages.filter(function (message) {
|
|
147
|
-
return message.id !== payload.message.id;
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
var handleAddMessage = function handleAddMessage(state, _ref15) {
|
|
153
|
-
var payload = _ref15.payload;
|
|
154
|
-
return state.updateIn(['discussions', payload.id, 'messages'], function (messages) {
|
|
155
|
-
return messages.unshift(payload.message);
|
|
156
|
-
});
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
var handleUpdatePresence = function handleUpdatePresence(state, _ref16) {
|
|
160
|
-
var payload = _ref16.payload;
|
|
161
|
-
return state.updateIn(['discussions', payload.id, 'presences'], function () {
|
|
162
|
-
return List(payload.presences);
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
var handleSetTopicStatus = function handleSetTopicStatus(state, _ref17) {
|
|
167
|
-
var payload = _ref17.payload;
|
|
168
|
-
return state.updateIn(['discussions', payload.id], function (discussion) {
|
|
169
|
-
return discussion.setIn(['topic', 'topicStatus'], payload.status);
|
|
170
|
-
});
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
var handleUnsubscribed = function handleUnsubscribed(state, _ref18) {
|
|
174
|
-
var payload = _ref18.payload;
|
|
175
|
-
return state.setIn(['discussions', payload.id, 'error'], 'Unsubscribed');
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
regHandlers((_regHandlers = {}, _defineProperty(_regHandlers, JOIN_DISCUSSION, handleJoinDiscussion), _defineProperty(_regHandlers, ADD_DISCUSSION, handleUpsertDiscussion), _defineProperty(_regHandlers, UPDATE_DISCUSSION, handleUpsertDiscussion), _defineProperty(_regHandlers, LEAVE_DISCUSSION, handleLeaveDiscussion), _defineProperty(_regHandlers, SET_DISCUSSION_ERROR, handleSetDiscussionError), _defineProperty(_regHandlers, FETCH_MORE_MESSAGES, handleFetchMoreMessages), _defineProperty(_regHandlers, SET_MORE_MESSAGES, handleSetMoreMessages), _defineProperty(_regHandlers, ADD_PARTICIPANT, handleAddParticipant), _defineProperty(_regHandlers, REMOVE_PARTICIPANT, handleRemoveParticipant), _defineProperty(_regHandlers, UPDATE_PARTICIPANT, handleUpdateParticipant), _defineProperty(_regHandlers, ADD_INVITATION, handleAddInvitation), _defineProperty(_regHandlers, REMOVE_INVITATION, handleRemoveInvitation), _defineProperty(_regHandlers, UPDATE_INVITATION, handleUpdateInvitation), _defineProperty(_regHandlers, MESSAGE_UPDATE, handleMessageUpdate), _defineProperty(_regHandlers, REMOVE_MESSAGE, handleRemoveMessage), _defineProperty(_regHandlers, ADD_MESSAGE, handleAddMessage), _defineProperty(_regHandlers, UPDATE_PRESENCE, handleUpdatePresence), _defineProperty(_regHandlers, SET_TOPIC_STATUS, handleSetTopicStatus), _defineProperty(_regHandlers, UNSUBSCRIBED, handleUnsubscribed), _regHandlers));
|