From 516cdf5b822b0e4d7303806ac16ba48c1d47f2b4 Mon Sep 17 00:00:00 2001 From: Nix13 Date: Thu, 15 Oct 2020 00:59:13 +0300 Subject: [PATCH] code reformat --- package-lock.json | 179 ++++++++---------- package.json | 23 ++- src/api/api.ts | 7 +- src/api/auth.ts | 15 +- src/api/characters.ts | 2 +- src/api/news.ts | 2 +- src/api/novels.ts | 9 +- src/api/users.ts | 12 +- src/classNames.ts | 8 +- src/index.tsx | 6 +- src/pages/ActivateAccount.tsx | 14 +- src/pages/AdminPanel/AdminPanel.tsx | 25 ++- src/pages/AdminPanel/News/APModifyPost.tsx | 24 +-- src/pages/AdminPanel/News/APNews.tsx | 6 +- .../AdminPanel/Novels/AdminPanelNovels.tsx | 12 +- .../AdminPanel/Users/AdminPanelUsers.tsx | 6 +- src/pages/AdminPanel/Users/ModifyUser.tsx | 23 ++- src/pages/App/App.tsx | 12 +- src/pages/Character/Character.tsx | 6 +- src/pages/Comments/Comments.sass | 72 +++---- src/pages/Comments/Comments.tsx | 84 ++++---- src/pages/Footer/Footer.tsx | 4 +- src/pages/Main/News.tsx | 6 +- src/pages/Modals/LoginModal.sass | 3 +- src/pages/Modals/LoginModal.tsx | 18 +- src/pages/Modals/RegisterModal.sass | 3 +- src/pages/Modals/RegisterModal.tsx | 13 +- src/pages/Navbar/Navbar.sass | 2 +- src/pages/Navbar/Navbar.tsx | 40 ++-- src/pages/News/AllNews.tsx | 4 +- src/pages/News/Post.tsx | 10 +- src/pages/NotFoundError.tsx | 6 +- src/pages/Novel/Novel.tsx | 63 +++--- src/pages/Novels/Novels.tsx | 6 +- src/pages/PasswordRestore/PasswordRestore.tsx | 4 +- .../PasswordRestoreGenerate.tsx | 7 +- src/pages/User/Novels/UserNovels.tsx | 16 +- src/pages/User/Settings/Appearance.tsx | 8 +- src/pages/User/Settings/General.tsx | 15 +- src/pages/User/Settings/Settings.tsx | 62 +++--- src/pages/User/User.tsx | 74 +++++--- src/pages/Users/Users.tsx | 13 +- src/serviceWorker.ts | 162 ++++++++-------- src/store/ducks/currentUser.ts | 2 +- src/store/ducks/index.ts | 2 +- src/store/ducks/modal.ts | 7 +- src/store/ducks/notifications.ts | 5 +- src/store/ducks/userSettings.ts | 4 +- src/store/store.ts | 4 +- src/ui/BBEditor/BBEditor.tsx | 6 +- src/ui/Button/Button.tsx | 4 +- src/ui/Comment/Comment.sass | 4 +- src/ui/Comment/Comment.tsx | 4 +- src/ui/ConfirmPopout/ConfirmPopout.tsx | 4 +- src/ui/Group/Group.tsx | 2 +- src/ui/Input/Input.tsx | 2 +- src/ui/Modal/Modal.tsx | 4 +- src/ui/NewsPost/NewsPost.tsx | 2 +- src/ui/Notifications/NotificationMessage.tsx | 8 +- src/ui/NovelItem/NovelItem.tsx | 5 +- src/ui/ProgressBar/ProgressBar.sass | 2 + src/ui/ProgressBar/ProgressBar.tsx | 7 +- src/ui/Recaptcha/Recaptcha.tsx | 4 +- src/ui/Spoiler/Spoiler.tsx | 8 +- src/ui/Spoiler/SpoilerTag.tsx | 2 +- src/ui/Tags/ColorTag.tsx | 2 +- src/ui/TextField/TextField.tsx | 14 +- src/ui/Title/Title.tsx | 2 +- src/utils.ts | 2 +- 69 files changed, 635 insertions(+), 563 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bb3422..c32464e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1344,38 +1344,38 @@ "dev": true }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.28", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.28.tgz", - "integrity": "sha512-gtis2/5yLdfI6n0ia0jH7NJs5i/Z/8M/ZbQL6jXQhCthEOe5Cr5NcQPhgTvFxNOtURE03/ZqUcEskdn2M+QaBg==" + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.28", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.28.tgz", - "integrity": "sha512-4LeaNHWvrneoU0i8b5RTOJHKx7E+y7jYejplR7uSVB34+mp3Veg7cbKk7NBCLiI4TyoWS1wh9ZdoyLJR8wSAdg==", + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.28" + "@fortawesome/fontawesome-common-types": "^0.2.32" } }, "@fortawesome/free-brands-svg-icons": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.13.0.tgz", - "integrity": "sha512-/6xXiJFCMEQxqxXbL0FPJpwq5Cv6MRrjsbJEmH/t5vOvB4dILDpnY0f7zZSlA8+TG7jwlt12miF/yZpZkykucA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.1.tgz", + "integrity": "sha512-pkTZIWn7iuliCCgV+huDfZmZb2UjslalXGDA2PcqOVUYJmYL11y6ooFiMJkJvUZu+xgAc1gZgQe+Px12mZF0CA==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.28" + "@fortawesome/fontawesome-common-types": "^0.2.32" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.13.0.tgz", - "integrity": "sha512-IHUgDJdomv6YtG4p3zl1B5wWf9ffinHIvebqQOmV3U+3SLw4fC+LUCCgwfETkbTtjy5/Qws2VoVf6z/ETQpFpg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.28" + "@fortawesome/fontawesome-common-types": "^0.2.32" } }, "@fortawesome/react-fontawesome": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.10.tgz", - "integrity": "sha512-UGdpJiLBIqR/8xcLrCarf2pChqQFKjDTD02C7ZS/odpOVVl2YuHYRCLEOQ0GpfOk6jtYhmouSFOFoC8qNCe5cg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.11.tgz", + "integrity": "sha512-sClfojasRifQKI0OPqTy8Ln8iIhnxR/Pv/hukBhWnBz9kQRmqi6JSH3nghlhAY7SUeIIM7B5/D2G8WjX0iepVg==", "requires": { "prop-types": "^15.7.2" } @@ -1775,59 +1775,59 @@ "dev": true }, "@sentry/browser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.12.1.tgz", - "integrity": "sha512-Zl7VdppUxctyaoqMSEhnDJp2rrupx8n8N2n3PSooH74yhB2Z91nt84mouczprBsw3JU1iggGyUw9seRFzDI1hw==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.26.0.tgz", + "integrity": "sha512-52kNVpy10Zd3gJRGFkhnOQvr80WJg7+XBqjMOE0//Akh4PfvEK3IqmAjVqysz6aHdruwTTivKF4ZoAxL/pA7Rg==", "requires": { - "@sentry/core": "5.12.0", - "@sentry/types": "5.12.0", - "@sentry/utils": "5.12.0", + "@sentry/core": "5.26.0", + "@sentry/types": "5.26.0", + "@sentry/utils": "5.26.0", "tslib": "^1.9.3" } }, "@sentry/core": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.12.0.tgz", - "integrity": "sha512-wY4rsoX71QsGpcs9tF+OxKgDPKzIFMRvFiSRcJoPMfhFsTilQ/CBMn/c3bDtWQd9Bnr/ReQIL6NbnIjUsPHA4Q==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.26.0.tgz", + "integrity": "sha512-Ubrw7K52orTVsaxpz8Su40FPXugKipoQC+zPrXcH+JIMB+o18kutF81Ae4WzuUqLfP7YB91eAlRrP608zw0EXA==", "requires": { - "@sentry/hub": "5.12.0", - "@sentry/minimal": "5.12.0", - "@sentry/types": "5.12.0", - "@sentry/utils": "5.12.0", + "@sentry/hub": "5.26.0", + "@sentry/minimal": "5.26.0", + "@sentry/types": "5.26.0", + "@sentry/utils": "5.26.0", "tslib": "^1.9.3" } }, "@sentry/hub": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.12.0.tgz", - "integrity": "sha512-3k7yE8BEVJsKx8mR4LcI4IN0O8pngmq44OcJ/fRUUBAPqsT38jsJdP2CaWhdlM1jiNUzUDB1ktBv6/lY+VgcoQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.26.0.tgz", + "integrity": "sha512-lAYeWvvhGYS6eQ5d0VEojw0juxGc3v4aAu8VLvMKWcZ1jXD13Bhc46u9Nvf4qAY6BAQsJDQcpEZLpzJu1bk1Qw==", "requires": { - "@sentry/types": "5.12.0", - "@sentry/utils": "5.12.0", + "@sentry/types": "5.26.0", + "@sentry/utils": "5.26.0", "tslib": "^1.9.3" } }, "@sentry/minimal": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.12.0.tgz", - "integrity": "sha512-fk73meyz4k4jCg9yzbma+WkggsfEIQWI2e2TWfYsRGcrV3RnlSrXyM4D91/A8Bjx10SNezHPUFHjasjlHXOkyA==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.26.0.tgz", + "integrity": "sha512-mdFo3FYaI1W3KEd8EHATYx8mDOZIxeoUhcBLlH7Iej6rKvdM7p8GoECrmHPU1l6sCCPtBuz66QT5YeXc7WILsA==", "requires": { - "@sentry/hub": "5.12.0", - "@sentry/types": "5.12.0", + "@sentry/hub": "5.26.0", + "@sentry/types": "5.26.0", "tslib": "^1.9.3" } }, "@sentry/types": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.12.0.tgz", - "integrity": "sha512-aZbBouBLrKB8wXlztriIagZNmsB+wegk1Jkl6eprqRW/w24Sl/47tiwH8c5S4jYTxdAiJk+SAR10AAuYmIN3zg==" + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.26.0.tgz", + "integrity": "sha512-ugpa1ePOhK55pjsyutAsa2tiJVQEyGYCaOXzaheg/3+EvhMdoW+owiZ8wupfvPhtZFIU3+FPOVz0d5k9K5d1rw==" }, "@sentry/utils": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.12.0.tgz", - "integrity": "sha512-fYUadGLbfTCbs4OG5hKCOtv2jrNE4/8LHNABy9DwNJ/t5DVtGqWAZBnxsC+FG6a3nVqCpxjFI9AHlYsJ2wsf7Q==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-F2gnHIAWbjiowcAgxz3VpKxY/NQ39NTujEd/NPnRTWlRynLFg3bAV+UvZFXljhYJeN3b/zRlScNDcpCWTrtZGw==", "requires": { - "@sentry/types": "5.12.0", + "@sentry/types": "5.26.0", "tslib": "^1.9.3" } }, @@ -2020,9 +2020,9 @@ } }, "@types/history": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", - "integrity": "sha512-GRTZLeLJ8ia00ZH8mxMO8t0aC9M1N9bN461Z2eaRurJo6Fpa+utgCwLzI4jQHcrdzuzp5WPN9jRwpsCQ1VhJ5w==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.8.tgz", + "integrity": "sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==", "dev": true }, "@types/hoist-non-react-statics": { @@ -2073,9 +2073,9 @@ "dev": true }, "@types/node": { - "version": "14.0.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz", - "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==", + "version": "14.11.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.8.tgz", + "integrity": "sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw==", "dev": true }, "@types/parse-json": { @@ -2097,13 +2097,13 @@ "dev": true }, "@types/react": { - "version": "16.9.36", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.36.tgz", - "integrity": "sha512-mGgUb/Rk/vGx4NCvquRuSH0GHBQKb1OqpGS9cT9lFxlTLHZgkksgI60TuIxubmn7JuCb+sENHhQciqa0npm0AQ==", + "version": "16.9.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", + "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", "dev": true, "requires": { "@types/prop-types": "*", - "csstype": "^2.2.0" + "csstype": "^3.0.2" } }, "@types/react-dom": { @@ -2128,9 +2128,9 @@ } }, "@types/react-router": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.7.tgz", - "integrity": "sha512-2ouP76VQafKjtuc0ShpwUebhHwJo0G6rhahW9Pb8au3tQTjYXd2jta4wv6U2tGLR/I42yuG00+UXjNYY0dTzbg==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.8.tgz", + "integrity": "sha512-HzOyJb+wFmyEhyfp4D4NYrumi+LQgQL/68HvJO+q6XtuHSDvw6Aqov7sCAhjbNq3bUPgPqbdvjXC5HeB2oEAPg==", "dev": true, "requires": { "@types/history": "*", @@ -2138,9 +2138,9 @@ } }, "@types/react-router-dom": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.5.tgz", - "integrity": "sha512-ArBM4B1g3BWLGbaGvwBGO75GNFbLDUthrDojV2vHLih/Tq8M+tgvY1DSwkuNrPSwdp/GUL93WSEpTZs8nVyJLw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.6.tgz", + "integrity": "sha512-gjrxYqxz37zWEdMVvQtWPFMFj1dRDb4TGOcgyOfSXTrEXdF92L00WE3C471O3TV/RF1oskcStkXsOU0Ete4s/g==", "dev": true, "requires": { "@types/history": "*", @@ -4934,9 +4934,10 @@ } }, "csstype": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", + "dev": true }, "currently-unhandled": { "version": "0.4.1", @@ -5327,15 +5328,6 @@ "utila": "~0.4" } }, - "dom-helpers": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", - "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^2.6.7" - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -9770,9 +9762,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "lodash._reinterpolate": { @@ -12680,9 +12672,9 @@ } }, "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -12999,9 +12991,9 @@ } }, "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -13030,9 +13022,9 @@ } }, "react-redux": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.0.tgz", - "integrity": "sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.1.tgz", + "integrity": "sha512-T+VfD/bvgGTUA74iW9d2i5THrDQWbweXP0AVNI8tNd1Rk5ch1rnMiJkDD67ejw7YBKM4+REvcvqRuWJb7BLuEg==", "requires": { "@babel/runtime": "^7.5.5", "hoist-non-react-statics": "^3.3.0", @@ -13156,17 +13148,6 @@ } } }, - "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", diff --git a/package.json b/package.json index 8307afe..602f464 100644 --- a/package.json +++ b/package.json @@ -3,26 +3,25 @@ "version": "0.1.0", "private": true, "dependencies": { - "@fortawesome/fontawesome-svg-core": "1.2.28", - "@fortawesome/free-brands-svg-icons": "5.13.0", - "@fortawesome/free-solid-svg-icons": "5.13.0", - "@fortawesome/react-fontawesome": "0.1.10", - "@sentry/browser": "^5.7.1", + "@fortawesome/fontawesome-svg-core": "1.2.32", + "@fortawesome/free-brands-svg-icons": "5.15.1", + "@fortawesome/free-solid-svg-icons": "5.15.1", + "@fortawesome/react-fontawesome": "0.1.11", + "@sentry/browser": "5.26.0", "bbcode-to-react": "0.2.9", "react": "16.14.0", "react-dom": "16.14.0", "react-loader-spinner": "3.1.14", - "react-redux": "7.2.0", - "react-router-dom": "5.2.0", - "react-transition-group": "4.4.1", - "redux": "4.0.5" + "redux": "4.0.5", + "react-redux": "7.2.1", + "react-router-dom": "5.2.0" }, "devDependencies": { - "@types/node": "14.0.13", - "@types/react": "16.9.36", + "@types/node": "14.11.8", + "@types/react": "16.9.52", "@types/react-dom": "16.9.8", "@types/react-redux": "7.1.9", - "@types/react-router-dom": "5.1.5", + "@types/react-router-dom": "5.1.6", "@types/react-transition-group": "4.4.0", "node-sass": "4.14.1", "redux-devtools-extension": "2.13.8", diff --git a/src/api/api.ts b/src/api/api.ts index ac931fc..b367cce 100644 --- a/src/api/api.ts +++ b/src/api/api.ts @@ -2,7 +2,7 @@ const baseUrl = process.env.NODE_ENV === "development" ? 'http://localhost:8080/ async function request(url: string, method: string, body?: string | FormData): Promise { let bUrl = baseUrl; - if(baseUrl.endsWith('/')) bUrl = bUrl.slice(0, baseUrl.length-1); + if(baseUrl.endsWith('/')) bUrl = bUrl.slice(0, baseUrl.length - 1); if(url.startsWith('/')) url = url.slice(1, baseUrl.length); const res = await fetch(`${bUrl}/${url}`, { @@ -13,7 +13,7 @@ async function request(url: string, method: string, body?: string | FormData) let json: ApiResponse; try { json = await res.json(); - } catch (e) { + } catch(e) { json = { error: false }; } @@ -29,12 +29,15 @@ async function request(url: string, method: string, body?: string | FormData) function get(url: string, data?: object): Promise { return request(url, 'GET', JSON.stringify(data)); } + function post(url: string, data?: object | FormData): Promise { return request(url, 'POST', data instanceof FormData ? data : JSON.stringify(data)); } + function put(url: string, data?: object): Promise { return request(url, 'PUT', JSON.stringify(data)); } + function del(url: string, data?: object): Promise { return request(url, 'DELETE', JSON.stringify(data)); } diff --git a/src/api/auth.ts b/src/api/auth.ts index 76a1789..829a4a0 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -1,6 +1,15 @@ -import {post} from "./api"; +import { post } from "./api"; export const restore = (token: string, new_password: string) => post('auth/restore', { token, new_password }); -export const registerUser = (login: string, password: string, email: string, recaptcha: string) => post('auth/register', { login, password, email, recaptcha }); -export const login = (login: string, password: string, recaptcha: string) => post('auth/login', { login, password, recaptcha }); +export const registerUser = (login: string, password: string, email: string, recaptcha: string) => post('auth/register', { + login, + password, + email, + recaptcha +}); +export const login = (login: string, password: string, recaptcha: string) => post('auth/login', { + login, + password, + recaptcha +}); export const userLogout = () => post('auth/logout'); diff --git a/src/api/characters.ts b/src/api/characters.ts index f9745e4..1842a1f 100644 --- a/src/api/characters.ts +++ b/src/api/characters.ts @@ -1,4 +1,4 @@ -import {get} from "./api"; +import { get } from "./api"; export const fetchChar = (id: number) => get(`characters/${id}`); export const fetchCharNovels = (id: number) => get(`characters/${id}/novels`); diff --git a/src/api/news.ts b/src/api/news.ts index e4a3632..2edf80e 100644 --- a/src/api/news.ts +++ b/src/api/news.ts @@ -1,4 +1,4 @@ -import {del, get, put} from './api'; +import { del, get, put } from './api'; export const fetchNews = () => get('news'); diff --git a/src/api/novels.ts b/src/api/novels.ts index f14e19f..8bf2223 100644 --- a/src/api/novels.ts +++ b/src/api/novels.ts @@ -1,4 +1,4 @@ -import { get, post, put, del } from "./api"; +import { del, get, post, put } from "./api"; export const fetchNovels = (orderBy?: string) => get(orderBy ? `novels?sort=${orderBy}` : 'novels'); @@ -11,10 +11,13 @@ export const fetchNovelCharacters = (id: number) => get(`novels export const fetchNovelGenres = (id: number) => get(`novels/${id}/genres`); -export const fetchNovelComments = (id: number, offset=0, count=5) => get(`novels/${id}/comments?offset=${offset}&count=${count}`); +export const fetchNovelComments = (id: number, offset = 0, count = 5) => get(`novels/${id}/comments?offset=${offset}&count=${count}`); export const postNovelComment = (id: number, text: string) => post(`novels/${id}/comments`, { text }); export const fetchUserNovel = (userId: number, novelId: number) => get(`users/${userId}/novels/${novelId}`); -export const createUserNovel = (userId: number, novelId: number, status='planned') => post(`users/${userId}/novels`, { novel_id: Number(novelId), status }); +export const createUserNovel = (userId: number, novelId: number, status = 'planned') => post(`users/${userId}/novels`, { + novel_id: Number(novelId), + status +}); export const updateUserNovel = (userId: number, novelId: number, data: { mark?: number; status?: string }) => put(`users/${userId}/novels/${novelId}`, data); export const deleteUserNovel = (userId: number, novelId: number) => del(`users/${userId}/novels/${novelId}`); diff --git a/src/api/users.ts b/src/api/users.ts index 17b0d7c..c5917a8 100644 --- a/src/api/users.ts +++ b/src/api/users.ts @@ -1,4 +1,4 @@ -import {get, post, put} from "./api"; +import { get, post, put } from "./api"; export const fetchUsers = () => get('users'); @@ -12,8 +12,14 @@ export const activateAccount = (token: string) => post('auth/activate', export const generateActivateLink = () => post('auth/activateToken'); export const fetchUserSettings = () => get('users/me/settings'); -export const updateUserGeneralSettings = (use_gravatar: boolean, avatar: string) => post('users/me/settings', { use_gravatar, avatar }); +export const updateUserGeneralSettings = (use_gravatar: boolean, avatar: string) => post('users/me/settings', { + use_gravatar, + avatar +}); export const updateUserAppearanceSettings = (theme: string) => post('users/me/settings', { theme }); export const uploadAvatar = (avatar: FormData) => post('users/me/avatar', avatar); -export const generateRestoreLink = (email: string, recaptcha: string) => post('auth/restoreToken', { email, recaptcha }); +export const generateRestoreLink = (email: string, recaptcha: string) => post('auth/restoreToken', { + email, + recaptcha +}); diff --git a/src/classNames.ts b/src/classNames.ts index 21a9263..2a23fe3 100644 --- a/src/classNames.ts +++ b/src/classNames.ts @@ -8,16 +8,16 @@ export default function classNames(...classNames: ClassName[]) { let result: string[] = []; classNames.forEach((item: ClassName): void => { - if (!item) { + if(!item) { return; } - switch (typeof item) { + switch(typeof item) { case 'string': result.push(item); break; case 'object': Object.keys(item).forEach((key: string) => { - if (item[key]) { + if(item[key]) { result.push(key); } }); @@ -28,4 +28,4 @@ export default function classNames(...classNames: ClassName[]) { }); return result.join(' '); -} \ No newline at end of file +} diff --git a/src/index.tsx b/src/index.tsx index 46ef26b..cf1d468 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import {BrowserRouter} from "react-router-dom"; -import {Provider} from 'react-redux'; +import { BrowserRouter } from "react-router-dom"; +import { Provider } from 'react-redux'; import store from "./store/store"; import * as Sentry from '@sentry/browser'; import App from './pages/App/App'; @@ -13,7 +13,7 @@ if(process.env.NODE_ENV === 'production') ReactDOM.render( - + , document.getElementById('root')); diff --git a/src/pages/ActivateAccount.tsx b/src/pages/ActivateAccount.tsx index 06791b4..d1890e0 100644 --- a/src/pages/ActivateAccount.tsx +++ b/src/pages/ActivateAccount.tsx @@ -1,9 +1,9 @@ import React from "react"; -import {activateAccount} from "../api/users"; -import {connect} from "react-redux"; +import { activateAccount } from "../api/users"; +import { connect } from "react-redux"; import errors from "../api/errors"; import Loading from "../ui/Loading"; -import {addNotification} from "../store/ducks/notifications"; +import { addNotification } from "../store/ducks/notifications"; type Props = { history: { push: (path: string) => void } @@ -35,7 +35,10 @@ class ActivateAccount extends React.Component { if(msg) { this.setState({ msg, error: true }); } else { - this.setState({ msg: 'Во время активации произошла ошибка! Сообщите об этом разработчику!', error: true }); + this.setState({ + msg: 'Во время активации произошла ошибка! Сообщите об этом разработчику!', + error: true + }); console.error(err.text); } if(err.code === 5) { @@ -55,7 +58,8 @@ class ActivateAccount extends React.Component { const { msg, error } = this.state; if(msg.length === 0) return ; return ( -
{msg}
+
{msg}
); } } diff --git a/src/pages/AdminPanel/AdminPanel.tsx b/src/pages/AdminPanel/AdminPanel.tsx index 90e3b06..cc23f29 100644 --- a/src/pages/AdminPanel/AdminPanel.tsx +++ b/src/pages/AdminPanel/AdminPanel.tsx @@ -1,9 +1,9 @@ -import {connect} from "react-redux"; +import { connect } from "react-redux"; import React from "react"; import NotFoundError from "../NotFoundError"; -import {hasAccessToAdminPanel} from "../../utils"; +import { hasAccessToAdminPanel } from "../../utils"; import './AdminPanel.sass'; -import {Link} from "react-router-dom"; +import { Link } from "react-router-dom"; import AdminPanelUsers from "./Users/AdminPanelUsers"; import AdminPanelNovels from "./Novels/AdminPanelNovels"; import ModifyUser from "./Users/ModifyUser"; @@ -23,12 +23,18 @@ class AdminPanel extends React.Component { const { user, match: { path }, location: { pathname } } = this.props; if(!user || !user.group) return ; if(!hasAccessToAdminPanel(user)) return ; - const subPath = pathname.slice(path.length+1); + const subPath = pathname.slice(path.length + 1); let component; switch(subPath) { - case 'users': component = ; break; - case 'novels': component = ; break; - case 'news': component = ; break; + case 'users': + component = ; + break; + case 'novels': + component = ; + break; + case 'news': + component = ; + break; default: { const users = /users\/(\d+)/; const news = /news\/(\d+)/; @@ -43,7 +49,8 @@ class AdminPanel extends React.Component { return (
-
Админ панель (в разработке)
+
Админ панель (в разработке) +
Главная Пользователи @@ -60,4 +67,4 @@ export default connect( (state: StoreState) => ({ user: state.currentUser }) -)(AdminPanel); \ No newline at end of file +)(AdminPanel); diff --git a/src/pages/AdminPanel/News/APModifyPost.tsx b/src/pages/AdminPanel/News/APModifyPost.tsx index aa2c66f..e3cd7f4 100644 --- a/src/pages/AdminPanel/News/APModifyPost.tsx +++ b/src/pages/AdminPanel/News/APModifyPost.tsx @@ -1,7 +1,7 @@ -import React, {ChangeEvent, FormEvent} from "react"; +import React, { ChangeEvent, FormEvent } from "react"; import Group from "../../../ui/Group/Group"; import NotFoundError from "../../NotFoundError"; -import {deletePost, fetchPost, updatePost} from "../../../api/news"; +import { deletePost, fetchPost, updatePost } from "../../../api/news"; import './APNews.sass'; import '../../../ui/TextField/TextField.sass' import Input from "../../../ui/Input/Input"; @@ -10,11 +10,11 @@ import BBEditor from "../../../ui/BBEditor/BBEditor"; // @ts-ignore import parser from 'bbcode-to-react'; import Title from "../../../ui/Title/Title"; -import {connect} from "react-redux"; +import { connect } from "react-redux"; import ConfirmPopout from "../../../ui/ConfirmPopout/ConfirmPopout"; import NotificationMessage from "../../../ui/Notifications/NotificationMessage"; -import {setModal} from "../../../store/ducks/modal"; -import {addNotification} from "../../../store/ducks/notifications"; +import { setModal } from "../../../store/ducks/modal"; +import { addNotification } from "../../../store/ducks/notifications"; type Props = { postId: number @@ -31,13 +31,12 @@ type State = { }; class APModifyPost extends React.Component { - private shortPost = React.createRef(); - private fullPost = React.createRef(); - state: State = { post: null, title: '', previewShort: '', previewFull: '' } + private shortPost = React.createRef(); + private fullPost = React.createRef(); componentDidMount() { const { postId } = this.props; @@ -46,7 +45,7 @@ class APModifyPost extends React.Component { }); } - savePost = async (event: FormEvent) => { + savePost = async(event: FormEvent) => { event.preventDefault(); const post = this.state.post; @@ -115,7 +114,7 @@ class APModifyPost extends React.Component {
Короткая новость - + {previewShort.length > 0 && (<> Предпросмотр
{previewShort}
@@ -125,7 +124,7 @@ class APModifyPost extends React.Component {
Полная новость - + {previewFull.length > 0 && (<> Предпросмотр
{previewFull}
@@ -135,7 +134,8 @@ class APModifyPost extends React.Component {
- +
diff --git a/src/pages/AdminPanel/News/APNews.tsx b/src/pages/AdminPanel/News/APNews.tsx index 19acd88..4958b8e 100644 --- a/src/pages/AdminPanel/News/APNews.tsx +++ b/src/pages/AdminPanel/News/APNews.tsx @@ -1,7 +1,7 @@ import React from "react"; -import {fetchNews} from "../../../api/news"; +import { fetchNews } from "../../../api/news"; import Group from "../../../ui/Group/Group"; -import {Link} from "react-router-dom"; +import { Link } from "react-router-dom"; import Button from "../../../ui/Button/Button"; type Props = { @@ -41,4 +41,4 @@ class APNews extends React.Component { } } -export default APNews; \ No newline at end of file +export default APNews; diff --git a/src/pages/AdminPanel/Novels/AdminPanelNovels.tsx b/src/pages/AdminPanel/Novels/AdminPanelNovels.tsx index a686060..93b075a 100644 --- a/src/pages/AdminPanel/Novels/AdminPanelNovels.tsx +++ b/src/pages/AdminPanel/Novels/AdminPanelNovels.tsx @@ -1,13 +1,9 @@ import React from "react"; -import {connect} from "react-redux"; +import { connect } from "react-redux"; -type Props = { +type Props = {}; -}; - -type State = { - -}; +type State = {}; class AdminPanelNovels extends React.Component { render() { @@ -21,4 +17,4 @@ export default connect( (state: StoreState) => ({ user: state.currentUser }) -)(AdminPanelNovels); \ No newline at end of file +)(AdminPanelNovels); diff --git a/src/pages/AdminPanel/Users/AdminPanelUsers.tsx b/src/pages/AdminPanel/Users/AdminPanelUsers.tsx index ab1a406..6fb8c82 100644 --- a/src/pages/AdminPanel/Users/AdminPanelUsers.tsx +++ b/src/pages/AdminPanel/Users/AdminPanelUsers.tsx @@ -1,7 +1,7 @@ import React from "react"; -import {connect} from "react-redux"; -import {fetchUsers} from "../../../api/users"; -import {Link} from "react-router-dom"; +import { connect } from "react-redux"; +import { fetchUsers } from "../../../api/users"; +import { Link } from "react-router-dom"; type Props = { path: string diff --git a/src/pages/AdminPanel/Users/ModifyUser.tsx b/src/pages/AdminPanel/Users/ModifyUser.tsx index 7b75980..146d170 100644 --- a/src/pages/AdminPanel/Users/ModifyUser.tsx +++ b/src/pages/AdminPanel/Users/ModifyUser.tsx @@ -1,11 +1,11 @@ -import React, {ChangeEvent, FormEvent} from "react"; -import {connect} from "react-redux"; -import {fetchUser, updateUser} from "../../../api/users"; +import React, { ChangeEvent, FormEvent } from "react"; +import { connect } from "react-redux"; +import { fetchUser, updateUser } from "../../../api/users"; import Loading from "../../../ui/Loading"; import './APUser.sass'; import NotificationMessage from "../../../ui/Notifications/NotificationMessage"; import Button from "../../../ui/Button/Button"; -import {addNotification} from "../../../store/ducks/notifications"; +import { addNotification } from "../../../store/ducks/notifications"; type Props = { userId: number @@ -65,12 +65,17 @@ class ModifyUser extends React.Component {
{username}
- - - + + + - - + +
diff --git a/src/pages/App/App.tsx b/src/pages/App/App.tsx index 0f760b9..b05538f 100644 --- a/src/pages/App/App.tsx +++ b/src/pages/App/App.tsx @@ -1,13 +1,13 @@ import React from 'react'; -import {Switch, Route} from "react-router-dom"; +import { Route, Switch } from "react-router-dom"; import './App.sass'; import Navbar from "../Navbar/Navbar"; import Novel from "../Novel/Novel"; import User from "../User/User"; import Main from "../Main/Main" import NotFoundError from "../NotFoundError"; -import {fetchCurrentUser, fetchUserSettings} from "../../api/users"; -import {connect} from "react-redux"; +import { fetchCurrentUser, fetchUserSettings } from "../../api/users"; +import { connect } from "react-redux"; import Character from "../Character/Character"; // @ts-ignore import parser from 'bbcode-to-react'; @@ -23,10 +23,10 @@ import AdminPanel from "../AdminPanel/AdminPanel"; import PasswordRestoreGenerate from "../PasswordRestore/PasswordRestoreGenerate"; import PasswordRestore from "../PasswordRestore/PasswordRestore"; import Users from "../Users/Users"; -import {getVersion, version} from "../../api/api"; +import { getVersion, version } from "../../api/api"; import Settings from "../User/Settings/Settings"; -import {setUser} from "../../store/ducks/currentUser"; -import {setSettings} from "../../store/ducks/userSettings"; +import { setUser } from "../../store/ducks/currentUser"; +import { setSettings } from "../../store/ducks/userSettings"; type Props = { notifications: React.ReactNode[] diff --git a/src/pages/Character/Character.tsx b/src/pages/Character/Character.tsx index 6ce5ba2..cdc9e28 100644 --- a/src/pages/Character/Character.tsx +++ b/src/pages/Character/Character.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {fetchChar, fetchCharNovels} from "../../api/characters"; +import { fetchChar, fetchCharNovels } from "../../api/characters"; import './Character.sass' // @ts-ignore import parser from 'bbcode-to-react'; @@ -50,11 +50,11 @@ class Character extends React.Component {
{novels.length > 0 &&
- {novels.map(novel => )} + {novels.map(novel => )}
}
); } } -export default Character; \ No newline at end of file +export default Character; diff --git a/src/pages/Comments/Comments.sass b/src/pages/Comments/Comments.sass index 7356c55..100a0cd 100644 --- a/src/pages/Comments/Comments.sass +++ b/src/pages/Comments/Comments.sass @@ -1,47 +1,47 @@ @import '../../Constants' .Comments - margin-top: 1rem - padding: $primaryPadding - background-color: var(--sec-bg-color) - border-radius: $borderRadius + margin-top: 1rem + padding: $primaryPadding + background-color: var(--sec-bg-color) + border-radius: $borderRadius - form - width: 100% - margin-bottom: .5rem + form + width: 100% + margin-bottom: .5rem - .Comments_BBCodes - font-size: 1.3rem - margin-bottom: .2rem + .Comments_BBCodes + font-size: 1.3rem + margin-bottom: .2rem - svg - cursor: pointer + svg + cursor: pointer - svg:first-child - padding-right: .5rem + svg:first-child + padding-right: .5rem - svg:last-child - padding-left: .5rem + svg:last-child + padding-left: .5rem - svg:not(:first-child):not(:last-child) - padding: 0 .5rem + svg:not(:first-child):not(:last-child) + padding: 0 .5rem - .Comments_TextArea - width: 100% - color: var(--main-color) - background-color: var(--block-color) - font-size: 1rem - padding: .25rem - border: none - border-radius: .2rem - box-sizing: border-box - min-height: 4rem - resize: none - margin-bottom: .5rem + .Comments_TextArea + width: 100% + color: var(--main-color) + background-color: var(--block-color) + font-size: 1rem + padding: .25rem + border: none + border-radius: .2rem + box-sizing: border-box + min-height: 4rem + resize: none + margin-bottom: .5rem - .Comments_Submit - background-color: var(--block-color) !important - border-radius: .2rem - border: none - font-size: 1rem - padding: .5rem + .Comments_Submit + background-color: var(--block-color) !important + border-radius: .2rem + border: none + font-size: 1rem + padding: .5rem diff --git a/src/pages/Comments/Comments.tsx b/src/pages/Comments/Comments.tsx index 759a14e..fec41e1 100644 --- a/src/pages/Comments/Comments.tsx +++ b/src/pages/Comments/Comments.tsx @@ -1,14 +1,21 @@ import React from 'react'; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faBold, faExclamationTriangle, faItalic, faStrikethrough, faUnderline, faTint } from "@fortawesome/free-solid-svg-icons"; +import { + faBold, + faExclamationTriangle, + faItalic, + faStrikethrough, + faTint, + faUnderline +} from "@fortawesome/free-solid-svg-icons"; import Comment from '../../ui/Comment/Comment'; import './Comments.sass'; import Loading from "../../ui/Loading"; -import {fetchUser} from "../../api/users"; -import {connect} from "react-redux"; +import { fetchUser } from "../../api/users"; +import { connect } from "react-redux"; import NotificationMessage from "../../ui/Notifications/NotificationMessage"; import Button from "../../ui/Button/Button"; -import {addNotification} from "../../store/ducks/notifications"; +import { addNotification } from "../../store/ducks/notifications"; type Props = { comments: CommentType[] @@ -86,40 +93,43 @@ class Comments extends React.Component { return (
- {user.authorized && - -
- this.addTagToComment(event, 'b')} icon={faBold}/> - this.addTagToComment(event, 'i')} icon={faItalic}/> - this.addTagToComment(event, 'u')} icon={faUnderline}/> - this.addTagToComment(event, 's')} icon={faStrikethrough}/> - this.addTagToComment(event, 'spoiler')} icon={faExclamationTriangle}/> - this.addTagToComment(event, 'color', 'white')} icon={faTint}/> -
-