diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFloatingAction.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFloatingAction.js deleted file mode 100644 index e989d4dfc..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFloatingAction.js +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { useFormikContext } from 'formik'; - -import { Intent, Button, Classes } from '@blueprintjs/core'; -import { FormattedMessage as T } from 'components'; -import { useHistory } from 'react-router-dom'; - -function SMSMessageTemplateFloatingAction() { - const history = useHistory(); - const { isSubmitting } = useFormikContext(); - - const handleCloseClick = () => { - history.go(-1); - }; - - return ( -
- - -
- ); -} - -export default SMSMessageTemplateFloatingAction; diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.js deleted file mode 100644 index 439272f65..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.js +++ /dev/null @@ -1,57 +0,0 @@ -import React from 'react'; -import { Formik, Form } from 'formik'; -import { Intent } from '@blueprintjs/core'; -import intl from 'react-intl-universal'; -import classNames from 'classnames'; -import { CLASSES } from 'common/classes'; - -import { CreateSMSMessageTemplateSchema } from './SMSMessageTemplateForm.schema'; -import SMSMessageTemplateFormContent from './SMSMessageTemplateFormContent'; -import withDashboardActions from 'containers/Dashboard/withDashboardActions'; - -import { compose } from 'utils'; - -export const defaultInitialValues = { - entries: [ - { - notification: '', - service: '', - message: '', - auto: true, - switch: true, - }, - ], -}; - -function SMSMessageTemplateForm({ - // #withDashboardActions - changePreferencesPageTitle, -}) { - // Form initial values. - const initialValues = { - ...defaultInitialValues, - }; - - React.useEffect(() => { - changePreferencesPageTitle( - intl.get('sms_message_template.label.sms_messages_template'), - ); - }, [changePreferencesPageTitle]); - - // Handles form submit. - const handleSubmit = (values, { setSubmitting, setErrors, resetForm }) => {}; - - return ( -
- -
- ); -} -export default compose(withDashboardActions)(SMSMessageTemplateForm); diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.schema.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.schema.js deleted file mode 100644 index 584e342e5..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateForm.schema.js +++ /dev/null @@ -1,19 +0,0 @@ -import * as Yup from 'yup'; -import intl from 'react-intl-universal'; -import { DATATYPES_LENGTH } from 'common/dataTypes'; -import { isBlank } from 'utils'; - -const Schema = Yup.object().shape({ - - entries: Yup.array().of( - Yup.object().shape({ - notification: Yup.string().nullable(), - service: Yup.number().nullable(), - message: Yup.string().max(DATATYPES_LENGTH.TEXT).nullable(), - auto:Yup.boolean(), - switch:Yup.boolean(), - - }), - ), -}) -export const CreateSMSMessageTemplateSchema = Schema; diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormBody.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormBody.js deleted file mode 100644 index 90067fb43..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormBody.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { FastField } from 'formik'; - -import SMSMessageTemplatesEntriesTable from './SMSMessageTemplatesEntriesTable'; - -export default function SMSMessageTemplateFormBody() { - return ( - - {({ - form: { values, setFieldValue }, - field: { value }, - meta: { error, touched }, - }) => ( - { - setFieldValue('entries', newEntries); - }} - /> - )} - - ); -} diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormContent.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormContent.js deleted file mode 100644 index 217361a35..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateFormContent.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { Form } from 'formik'; -import classNames from 'classnames'; -import { CLASSES } from 'common/classes'; - -import SMSMessageTemplateFormBody from './SMSMessageTemplateFormBody'; -import SMSMessageTemplateFloatingAction from './SMSMessageTemplateFloatingAction'; - -export default function SMSMessageTemplateFormContent() { - return ( -
- - - - ); -} diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplatesEntriesTable.js b/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplatesEntriesTable.js deleted file mode 100644 index 67ed04c43..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplatesEntriesTable.js +++ /dev/null @@ -1,68 +0,0 @@ -import React from 'react'; -import intl from 'react-intl-universal'; -import { - InputGroupCell, - TextAreaCell, - SwitchFieldCell, -} from 'components/DataTableCells'; -import { DataTableEditable } from 'components'; -import { compose, updateTableCell } from 'utils'; - -export default function SMSMessageTemplatesEntriesTable({ - onUpdateData, - entries, -}) { - const columns = React.useMemo(() => [ - { - Header: intl.get('sms_message_template.label_Notification'), - accessor: 'notification', - Cell: InputGroupCell, - disableSortBy: true, - width: '150', - }, - { - Header: intl.get('service'), - accessor: 'service', - Cell: InputGroupCell, - disableSortBy: true, - width: '150', - }, - { - Header: intl.get('sms_message_template.label_mesage'), - accessor: 'message', - // Cell: TextAreaCell, - Cell: InputGroupCell, - disableSortBy: true, - width: '150', - }, - { - Header: intl.get('sms_message_template.label_auto'), - accessor: 'auto', - Cell: SwitchFieldCell, - disableSortBy: true, - disableResizing: true, - width: '120', - }, - ]); - - const handleUpdateData = React.useCallback( - (rowIndex, columnId, value) => { - const newRows = compose(updateTableCell(rowIndex, columnId, value))( - entries, - ); - onUpdateData(newRows); - }, - [onUpdateData, entries], - ); - - return ( - - ); -} diff --git a/src/containers/Preferences/SMSMessageTemplates/index.js b/src/containers/Preferences/SMSMessageTemplates/index.js deleted file mode 100644 index 3a086ca9b..000000000 --- a/src/containers/Preferences/SMSMessageTemplates/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import { SMSMessageTemplateProvider } from './SMSMessageTemplateProvider'; -import SMSMessageTemplateForm from './SMSMessageTemplateForm'; - -/** - * SMS message template. - */ -export default function SMSMessageTemplates() { - return ( - - - - ); -} diff --git a/src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesDataTable.js b/src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesDataTable.js new file mode 100644 index 000000000..ad5b8682c --- /dev/null +++ b/src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesDataTable.js @@ -0,0 +1,54 @@ +import React from 'react'; +import intl from 'react-intl-universal'; +import { + DataTableEditable, + DataTable, + DashboardContentTable, +} from 'components'; +import TableSkeletonRows from 'components/Datatable/TableSkeletonRows'; + +import withDashboardActions from 'containers/Dashboard/withDashboardActions'; + +import { useSMSMessagesTemplatesTableColumns } from './components'; + +import { compose } from 'utils'; + +function SMSMessagesTemplatesDataTable({ + // #withDashboardActions + changePreferencesPageTitle, +}) { + // Table columns. + const columns = useSMSMessagesTemplatesTableColumns(); + + React.useEffect(() => { + changePreferencesPageTitle( + intl.get('sms_message_template.label.sms_messages_template'), + ); + }, [changePreferencesPageTitle]); + + const DATA = [ + { + notification: 'notification', + service: 'service', + message: 'message', + auto: true, + }, + { + notification: 'notification', + service: 'service', + message: 'message', + auto: false, + }, + ]; + return ( + + ); +} +export default compose(withDashboardActions)(SMSMessagesTemplatesDataTable); diff --git a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateProvider.js b/src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesProvider.js similarity index 51% rename from src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateProvider.js rename to src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesProvider.js index b90df0a4e..474ea97b1 100644 --- a/src/containers/Preferences/SMSMessageTemplates/SMSMessageTemplateProvider.js +++ b/src/containers/Preferences/SMSMessagesTemplates/SMSMessagesTemplatesProvider.js @@ -1,17 +1,14 @@ import React from 'react'; import classNames from 'classnames'; import { CLASSES } from 'common/classes'; -import { useSettings, useSaveSettings } from 'hooks/query'; +import { useSettings } from 'hooks/query'; -import PreferencesPageLoader from '../PreferencesPageLoader'; - -const SMSMessageTemplateContext = React.createContext(); +const SMSMessagesTemplatesContext = React.createContext(); /** - * SMS message template provider. + * SMS message templates provider. */ -function SMSMessageTemplateProvider({ ...props }) { - +function SMSMessagesTemplatesProvider({ ...props }) { //Fetches Organization Settings. const { isLoading: isSettingsLoading } = useSettings(); @@ -26,17 +23,13 @@ function SMSMessageTemplateProvider({ ...props }) { )} >
- {isSettingsLoading ? ( - - ) : ( - - )} +
); } const useSMSMessageTemplateContext = () => - React.useContext(SMSMessageTemplateContext); + React.useContext(SMSMessagesTemplatesContext); -export { SMSMessageTemplateProvider, useSMSMessageTemplateContext }; +export { SMSMessagesTemplatesProvider, useSMSMessageTemplateContext }; diff --git a/src/containers/Preferences/SMSMessagesTemplates/components.js b/src/containers/Preferences/SMSMessagesTemplates/components.js new file mode 100644 index 000000000..5824a65c2 --- /dev/null +++ b/src/containers/Preferences/SMSMessagesTemplates/components.js @@ -0,0 +1,40 @@ +import React from 'react'; +import intl from 'react-intl-universal'; + +import { + InputGroupCell, + TextAreaCell, + SwitchFieldCell, +} from 'components/DataTableCells'; + +export function useSMSMessagesTemplatesTableColumns() { + return React.useMemo(() => [ + { + Header: intl.get('sms_message_template.label_Notification'), + accessor: 'notification', + className: 'notification', + width: '150', + }, + { + Header: intl.get('service'), + accessor: 'service', + className: 'service', + width: '100', + }, + { + Header: intl.get('sms_message_template.label_mesage'), + accessor: 'message', + className: 'message', + width: '180', + }, + { + Header: intl.get('sms_message_template.label_auto'), + accessor: 'auto', + Cell: SwitchFieldCell, + className: 'auto', + disableSortBy: true, + disableResizing: true, + width: '80', + }, + ]); +} diff --git a/src/containers/Preferences/SMSMessagesTemplates/index.js b/src/containers/Preferences/SMSMessagesTemplates/index.js new file mode 100644 index 000000000..44f4df09b --- /dev/null +++ b/src/containers/Preferences/SMSMessagesTemplates/index.js @@ -0,0 +1,15 @@ +import React from 'react'; + +import { SMSMessagesTemplatesProvider } from './SMSMessagesTemplatesProvider'; +import SMSMessagesTemplatesDataTable from './SMSMessagesTemplatesDataTable'; + +/** + * SMS messages templates. + */ +export default function SMSMessagesTemplates() { + return ( + + + + ); +} diff --git a/src/routes/preferences.js b/src/routes/preferences.js index 080b747c1..75b0990fe 100644 --- a/src/routes/preferences.js +++ b/src/routes/preferences.js @@ -4,7 +4,7 @@ import Accountant from 'containers/Preferences/Accountant/Accountant'; // import Accounts from 'containers/Preferences/Accounts/Accounts'; import Currencies from 'containers/Preferences/Currencies/Currencies'; import Item from 'containers/Preferences/Item'; -import SMSMessageTemplates from '../containers/Preferences/SMSMessageTemplates'; +import SMSMessagesTemplates from '../containers/Preferences/SMSMessagesTemplates'; import DefaultRoute from '../containers/Preferences/DefaultRoute'; const BASE_URL = '/preferences'; @@ -37,7 +37,7 @@ export default [ }, { path: `${BASE_URL}/sms-message`, - component: SMSMessageTemplates, + component: SMSMessagesTemplates, exact: true, }, {