From 17a4744e587b4ef19ab2ac3252cc56aa30a74d0c Mon Sep 17 00:00:00 2001 From: elforjani13 <39470382+elforjani13@users.noreply.github.com> Date: Thu, 4 Nov 2021 16:55:37 +0200 Subject: [PATCH] feat: add SMS message template. --- .../DataTableCells/SwitchFieldCell.js | 43 ++++++++++++ src/components/DataTableCells/TextAreaCell.js | 42 ++++++++++++ src/components/DataTableCells/index.js | 8 ++- src/config/preferencesMenu.js | 21 +++--- .../SMSMessageTemplateFloatingAction.js | 28 ++++++++ .../SMSMessageTemplateForm.js | 46 +++++++++++++ .../SMSMessageTemplateForm.schema.js | 19 ++++++ .../SMSMessageTemplateFormBody.js | 23 +++++++ .../SMSMessageTemplateFormContent.js | 16 +++++ .../SMSMessageTemplateProvider.js | 42 ++++++++++++ .../SMSMessageTemplatesEntriesTable.js | 68 +++++++++++++++++++ .../Preferences/SMSMessageTemplates/index.js | 14 ++++ src/lang/en/index.json | 18 +++-- src/routes/preferences.js | 6 ++ 14 files changed, 378 insertions(+), 16 deletions(-) create mode 100644 src/components/DataTableCells/SwitchFieldCell.js create mode 100644 src/components/DataTableCells/TextAreaCell.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFloatingAction.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.schema.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormBody.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormContent.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateProvider.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplatesEntriesTable.js create mode 100644 src/containers/Preferences/SMSMessageTemplates/index.js diff --git a/src/components/DataTableCells/SwitchFieldCell.js b/src/components/DataTableCells/SwitchFieldCell.js new file mode 100644 index 000000000..0e9635439 --- /dev/null +++ b/src/components/DataTableCells/SwitchFieldCell.js @@ -0,0 +1,43 @@ +import React from 'react'; +import classNames from 'classnames'; +import { get } from 'lodash'; +import { Classes, Switch, FormGroup, Intent } from '@blueprintjs/core'; + +const SwitchEditableCell = ({ + row: { index, original }, + column: { id, switchProps }, + cell: { value: initialValue }, + payload, +}) => { + const [value, setValue] = React.useState(initialValue); + + const onChange = (e) => { + const newValue = e.target.checked; + + setValue(newValue); + payload.updateData(index, id, newValue); + }; + + React.useEffect(() => { + setValue(initialValue); + }, [initialValue]); + + const error = payload.errors?.[index]?.[id]; + + return ( + + + + ); +}; +export default SwitchEditableCell; diff --git a/src/components/DataTableCells/TextAreaCell.js b/src/components/DataTableCells/TextAreaCell.js new file mode 100644 index 000000000..c8ff97a0c --- /dev/null +++ b/src/components/DataTableCells/TextAreaCell.js @@ -0,0 +1,42 @@ +import React, { useState, useEffect } from 'react'; +import classNames from 'classnames'; +import { Classes, TextArea, FormGroup, Intent } from '@blueprintjs/core'; + +const TextAreaEditableCell = ({ + row: { index }, + column: { id }, + cell: { value: initialValue }, + payload, +}) => { + const [value, setValue] = useState(initialValue); + + const onChange = (e) => { + setValue(e.target.value); + }; + const onBlur = () => { + payload.updateData(index, id, value); + }; + useEffect(() => { + setValue(initialValue); + }, [initialValue]); + + const error = payload.errors?.[index]?.[id]; + + return ( + +