From 676e6c73cfed67b906e1ebf9f7452dee61277d6b Mon Sep 17 00:00:00 2001 From: EduardZaydler <117674342+EduardZaydler@users.noreply.github.com> Date: Mon, 22 Jul 2024 19:10:53 +0700 Subject: [PATCH] contact events noisiness stat (#526) --- .eslintignore | 3 +- package.json | 2 + .../ContactList/contactlist--few-items.png | Bin 10553 -> 12688 bytes .../ContactList/contactlist--one-item.png | Bin 7866 -> 8919 bytes .../ContactEditModal/ContactEditModal.tsx | 8 +- .../Components/ContactEventsChart.tsx | 75 ++++++++ .../ContactEventStats/Components/Legend.less | 52 ++++++ .../Components/TriggerEventsChart.tsx | 54 ++++++ .../Components/htmlLegendPlugin.tsx | 154 ++++++++++++++++ .../ContactEventStats/ContactEventStats.less | 30 +++ .../ContactEventStats/ContactEventStats.tsx | 128 +++++++++++++ .../Components/EmptyListMessage.tsx | 24 +++ src/Components/ContactList/ContactList.less | 4 + src/Components/ContactList/ContactList.tsx | 66 ++++--- .../DateAndTimeMenu/DateAndTimeMenu.less | 15 ++ .../DateAndTimeMenu/DateAndTimeMenu.tsx | 78 ++++++++ .../DateAndTimeSelector.less | 25 +++ .../DateAndTimeSelector.tsx | 85 +++++++++ src/Components/DateSelector/DateSelector.tsx | 30 +++ .../CustomMaintenanceMenu.tsx | 174 +++++------------- .../MaintenanceSelect/MaintenanceSelect.tsx | 3 + .../MobileSettingsPage/MobileSettingsPage.tsx | 8 +- src/Components/Tag/Tag.tsx | 2 +- .../TagDropdownSelect/TagDropdownSelect.less | 2 +- src/Components/TagList/TagList.less | 2 +- src/Components/TimeSelector/TimeSelector.less | 6 + src/Components/TimeSelector/TimeSelector.tsx | 36 ++++ src/Domain/Contact.ts | 52 ++++++ src/Stories/MaintenanceSelect.stories.tsx | 27 +-- src/helpers/DateUtil.ts | 11 ++ src/helpers/getChartOptions.ts | 81 ++++++++ src/helpers/validations.ts | 81 ++++++++ src/hooks/useTeamSettingsAvailable.tsx | 2 +- src/mobile.bundle.tsx | 6 + src/services/ContactApi.ts | 20 +- src/types/htmlLegendPlugin.d.ts | 8 + yarn.lock | 21 ++- 37 files changed, 1191 insertions(+), 184 deletions(-) create mode 100644 src/Components/ContactEventStats/Components/ContactEventsChart.tsx create mode 100644 src/Components/ContactEventStats/Components/Legend.less create mode 100644 src/Components/ContactEventStats/Components/TriggerEventsChart.tsx create mode 100644 src/Components/ContactEventStats/Components/htmlLegendPlugin.tsx create mode 100644 src/Components/ContactEventStats/ContactEventStats.less create mode 100644 src/Components/ContactEventStats/ContactEventStats.tsx create mode 100644 src/Components/ContactList/Components/EmptyListMessage.tsx create mode 100644 src/Components/DateAndTimeMenu/DateAndTimeMenu.less create mode 100644 src/Components/DateAndTimeMenu/DateAndTimeMenu.tsx create mode 100644 src/Components/DateAndTimeSelector/DateAndTimeSelector.less create mode 100644 src/Components/DateAndTimeSelector/DateAndTimeSelector.tsx create mode 100644 src/Components/DateSelector/DateSelector.tsx create mode 100644 src/Components/TimeSelector/TimeSelector.less create mode 100644 src/Components/TimeSelector/TimeSelector.tsx create mode 100644 src/helpers/getChartOptions.ts create mode 100644 src/types/htmlLegendPlugin.d.ts diff --git a/.eslintignore b/.eslintignore index 5ed16ad99..0e7b479b7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,4 +4,5 @@ /flow-typed webpack.*.js src/TriggerGrammar/parser.terms.ts -src/TriggerGrammar/parser.ts \ No newline at end of file +src/TriggerGrammar/parser.ts +htmlLegendPlugin.d.ts \ No newline at end of file diff --git a/package.json b/package.json index 63ccbec92..b66878fba 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,8 @@ "@tanstack/react-table": "8.17.3", "@types/codemirror": "5.60.1", "chart.js": "4.4.1", + "chartjs-adapter-date-fns": "3.0.0", + "chartjs-plugin-zoom": "^2.0.1", "codemirror": "6.0.1", "color-hash": "1.0.3", "date-fns": "2.9.0", diff --git a/playwright/snapshots/ContactList/contactlist--few-items.png b/playwright/snapshots/ContactList/contactlist--few-items.png index e9b5c658a38cd8607d1de4385afbafb2bbb05656..e1339281832b75204b23b81408fb841c01690bf0 100644 GIT binary patch literal 12688 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 literal 10553 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 RjpPfIQ;H|kPyBV`zW`VZ`xF2G diff --git a/playwright/snapshots/ContactList/contactlist--one-item.png b/playwright/snapshots/ContactList/contactlist--one-item.png index aa4a5c4a68a7d25795c94b8dfa173ea1d7001819..6ecece1db4c66d15625de02e92a6221efc73bef0 100644 GIT binary patch literal 8919 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 QAo2l}incQ0%JsYd2AVedr2qf` literal 7866 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 Of3%|d&0K}MkN*cdSG`pL diff --git a/src/Components/ContactEditModal/ContactEditModal.tsx b/src/Components/ContactEditModal/ContactEditModal.tsx index 76ae14c2d..59998df93 100644 --- a/src/Components/ContactEditModal/ContactEditModal.tsx +++ b/src/Components/ContactEditModal/ContactEditModal.tsx @@ -87,7 +87,13 @@ const ContactEditModal: FC = ({

- +