Subject: pgAdmin 4 commit: Port preferences dialog to React. Fixes #7149

From: Akshay Joshi <[email-masked]>
Date: Mon, 21 Mar 2022 08:00:06 +0000

Port preferences dialog to React. Fixes #7149

Branch
------
master

Details
-------
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=74e794b4162b771f3ada4cf631bdbe0b43cab91b
Author: Nikhil Mohite <[email-masked]>

Modified Files
--------------
docs/en_US/images/preferences_browser_display.png  | Bin 179173 -> 180159 bytes
.../preferences_browser_keyboard_shortcuts.png     | Bin 169108 -> 182931 bytes
docs/en_US/images/preferences_browser_nodes.png    | Bin 127965 -> 117746 bytes
.../images/preferences_browser_properties.png      | Bin 98747 -> 98006 bytes
.../images/preferences_browser_tab_settings.png    | Bin 242214 -> 218830 bytes
.../en_US/images/preferences_dashboard_display.png | Bin 159705 -> 160834 bytes
docs/en_US/images/preferences_dashboard_graphs.png | Bin 138376 -> 140864 bytes
docs/en_US/images/preferences_debugger_display.png | Bin 133908 -> 0 bytes
.../preferences_debugger_keyboard_shortcuts.png    | Bin 129497 -> 145405 bytes
.../images/preferences_erd_keyboard_shortcuts.png  | Bin 0 -> 171696 bytes
docs/en_US/images/preferences_misc_themes.png      | Bin 112101 -> 122935 bytes
.../images/preferences_misc_user_language.png      | Bin 79006 -> 78854 bytes
docs/en_US/images/preferences_paths_binary.png     | Bin 242831 -> 251426 bytes
docs/en_US/images/preferences_paths_help.png       | Bin 132819 -> 99384 bytes
docs/en_US/images/preferences_schema_diff.png      | Bin 119685 -> 118589 bytes
.../images/preferences_sql_auto_completion.png     | Bin 95318 -> 89668 bytes
docs/en_US/images/preferences_sql_csv_output.png   | Bin 121212 -> 117730 bytes
docs/en_US/images/preferences_sql_display.png      | Bin 148088 -> 151244 bytes
docs/en_US/images/preferences_sql_editor.png       | Bin 221825 -> 196744 bytes
docs/en_US/images/preferences_sql_explain.png      | Bin 103846 -> 91462 bytes
docs/en_US/images/preferences_sql_formatting.png   | Bin 263141 -> 184540 bytes
.../images/preferences_sql_keyboard_shortcuts.png  | Bin 125560 -> 127110 bytes
docs/en_US/images/preferences_sql_options.png      | Bin 235207 -> 187799 bytes
docs/en_US/images/preferences_sql_results_grid.png | Bin 150806 -> 152498 bytes
docs/en_US/images/preferences_storage_options.png  | Bin 100482 -> 94404 bytes
docs/en_US/preferences.rst                         |  12 +
docs/en_US/release_notes_6_8.rst                   |   2 +-
web/package.json                                   |   7 +-
.../browser/register_browser_preferences.py        |   4 +-
.../servers/static/js/binary_path.ui.js            |  71 +++
web/pgadmin/misc/__init__.py                       |  10 +-
web/pgadmin/misc/file_manager/__init__.py          |  10 +-
web/pgadmin/preferences/__init__.py                | 138 +++--
.../static/js/components/PreferencesComponent.jsx  | 599 ++++++++++++++++++
.../static/js/components/PreferencesTree.jsx       |  68 +++
web/pgadmin/preferences/static/js/index.js         |  21 +
web/pgadmin/preferences/static/js/preferences.js   | 671 ++-------------------
web/pgadmin/preferences/tests/__init__.py          |   8 +
.../preferences/tests/preferences_test_data.json   |  27 +
.../preferences/tests/test_preferences_get.py      |  39 ++
.../preferences/tests/test_preferences_update.py   |  60 ++
web/pgadmin/static/img/fonticon/expand.svg         |   1 +
.../static/img/fonticon/minimize_collapse.svg      |   1 +
web/pgadmin/static/js/SchemaView/DataGridView.jsx  |  12 +-
web/pgadmin/static/js/SchemaView/MappedControl.jsx |  85 ++-
web/pgadmin/static/js/SchemaView/index.jsx         |  10 +-
web/pgadmin/static/js/components/ExternalIcon.jsx  |   6 +-
.../static/js/components/FormComponents.jsx        | 421 ++++++++-----
.../static/js/components/KeyboardShortcuts.jsx     | 130 ++++
.../static/js/components/QueryThresholds.jsx       |  90 +++
web/pgadmin/static/js/components/Themes.jsx        |  58 ++
web/pgadmin/static/js/helpers/ModalProvider.jsx    | 165 ++++-
web/pgadmin/static/js/helpers/Notifier.jsx         |  46 +-
web/pgadmin/static/js/tree/preference_nodes.ts     | 247 ++++++++
web/pgadmin/static/js/tree/preferences_tree.tsx    |  53 ++
web/pgadmin/static/js/tree/tree.js                 | 152 ++---
web/pgadmin/static/scss/_alertify.overrides.scss   |   3 +
.../sqleditor/utils/query_tool_preferences.py      |  20 +-
web/pgadmin/utils/preferences.py                   |  30 +-
.../components/KeyboardShortcuts.spec.js           | 100 +++
.../javascript/components/QueryThreshold.spec.js   |  86 +++
.../javascript/components/Themes.spec.js           |  96 +++
.../schema_ui_files/binary_path.ui.spec.js         |  47 ++
web/webpack.shim.js                                |   2 +-
web/yarn.lock                                      |  70 ++-
65 files changed, 2659 insertions(+), 1019 deletions(-)

---

From: Aditya Toshniwal <[email-masked]>
Date: Mon, 21 Mar 2022 13:50:29 +0530

Hi Nikhil,

You have called a ReactDOM.render inside a React component. ReactDOM.render
is used only to mount the top React component.
I remember we had discussed this and I told you to change. This may lead to
unpredictable behaviour.

Please change it.

-- 
Thanks,
Aditya Toshniwal
pgAdmin Hacker | Software Architect | *edbpostgres.com*
<http://edbpostgres.com>
"Don't Complain about Heat, Plant a TREE"