diff --git a/installation/mastodon.conf b/installation/mastodon.conf
index 5a6d16b99..535a3b5ee 100644
--- a/installation/mastodon.conf
+++ b/installation/mastodon.conf
@@ -33,7 +33,7 @@ server {
listen 80;
listen [::]:80;
server_name example.com;
- root /opt/soapbox/static;
+ root /opt/soapbox;
location /.well-known/acme-challenge/ { allow all; }
location / { return 301 https://$host$request_uri; }
}
@@ -58,7 +58,7 @@ server {
sendfile on;
client_max_body_size 80m;
- root /opt/soapbox/static;
+ root /opt/soapbox;
gzip on;
gzip_disable "msie6";
diff --git a/package.json b/package.json
index 0759175c8..c55cc42c9 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
"test:all": "${npm_execpath} run test:coverage && ${npm_execpath} run lint",
"lint": "${npm_execpath} run lint:js && ${npm_execpath} run lint:sass",
"lint:js": "npx eslint --ext .js,.jsx,.cjs,.mjs,.ts,.tsx . --cache",
- "lint:sass": "npx stylelint app/styles/**/*.scss",
+ "lint:sass": "npx stylelint src/styles/**/*.scss",
"prepare": "husky install"
},
"license": "AGPL-3.0-or-later",
@@ -66,7 +66,6 @@
"@tailwindcss/forms": "^0.5.3",
"@tailwindcss/typography": "^0.5.9",
"@tanstack/react-query": "^4.0.10",
- "@testing-library/react": "^14.0.0",
"@types/escape-html": "^1.0.1",
"@types/http-link-header": "^1.0.3",
"@types/leaflet": "^1.8.0",
@@ -83,29 +82,28 @@
"@types/react-sparklines": "^1.7.2",
"@types/react-swipeable-views": "^0.13.1",
"@types/redux-mock-store": "^1.0.3",
- "@types/seedrandom": "^3.0.2",
"@types/semver": "^7.3.9",
"@types/uuid": "^9.0.0",
"@vitejs/plugin-react": "^4.0.4",
"autoprefixer": "^10.4.15",
"axios": "^1.2.2",
- "axios-mock-adapter": "^1.21.1",
+ "axios-mock-adapter": "^1.22.0",
"babel-plugin-preval": "^5.1.0",
"babel-plugin-react-intl": "^7.5.20",
"blurhash": "^2.0.0",
"bootstrap-icons": "^1.5.0",
"bowser": "^2.11.0",
"browserslist": "^4.16.6",
- "clsx": "^1.2.1",
+ "clsx": "^2.0.0",
"core-js": "^3.27.2",
"cryptocurrency-icons": "^0.18.1",
- "cssnano": "^5.1.10",
+ "cssnano": "^6.0.0",
"detect-passive-events": "^2.0.0",
"dotenv": "^16.0.0",
"emoji-datasource": "14.0.0",
"emoji-mart": "^5.5.2",
"escape-html": "^1.0.3",
- "exif-js": "^2.3.0",
+ "exifr": "^7.1.3",
"graphemesplit": "^2.4.4",
"http-link-header": "^1.0.2",
"immer": "^10.0.0",
@@ -113,9 +111,8 @@
"intersection-observer": "^0.12.2",
"intl-messageformat": "9.13.0",
"intl-messageformat-parser": "^6.0.0",
- "intl-pluralrules": "^1.3.1",
+ "intl-pluralrules": "^2.0.0",
"leaflet": "^1.8.0",
- "libphonenumber-js": "^1.10.8",
"line-awesome": "^1.3.0",
"localforage": "^1.10.0",
"lodash": "^4.7.11",
@@ -134,10 +131,9 @@
"react-hot-toast": "^2.4.0",
"react-hotkeys": "^1.1.4",
"react-immutable-pure-component": "^2.2.2",
- "react-inlinesvg": "^3.0.0",
+ "react-inlinesvg": "^4.0.0",
"react-intl": "^5.0.0",
"react-motion": "^0.5.2",
- "react-otp-input": "^2.4.0",
"react-overlays": "^0.9.0",
"react-popper": "^2.3.0",
"react-redux": "^8.0.0",
@@ -156,7 +152,6 @@
"reselect": "^4.0.0",
"resize-observer-polyfill": "^1.5.1",
"sass": "^1.66.1",
- "seedrandom": "^3.0.5",
"semver": "^7.3.8",
"stringz": "^2.0.0",
"substring-trie": "^1.0.2",
@@ -164,7 +159,7 @@
"ts-node": "^10.9.1",
"tslib": "^2.3.1",
"twemoji": "https://github.com/twitter/twemoji#v14.0.2",
- "type-fest": "^3.12.0",
+ "type-fest": "^4.0.0",
"typescript": "^5.1.3",
"util": "^0.12.4",
"uuid": "^9.0.0",
@@ -179,14 +174,16 @@
"devDependencies": {
"@gitbeaker/node": "^35.8.0",
"@jedmao/redux-mock-store": "^3.0.5",
+ "@testing-library/jest-dom": "^6.1.3",
+ "@testing-library/react": "^14.0.0",
"@testing-library/react-hooks": "^8.0.1",
- "@testing-library/user-event": "^14.4.3",
+ "@testing-library/user-event": "^14.5.1",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"babel-plugin-transform-require-context": "^0.1.1",
"cross-env": "^7.0.3",
- "danger": "^11.0.7",
"eslint": "^8.49.0",
+ "eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-compat": "^4.2.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-jsdoc": "^46.8.1",
diff --git a/app/soapbox/__fixtures__/account-moved.json b/src/__fixtures__/account-moved.json
similarity index 100%
rename from app/soapbox/__fixtures__/account-moved.json
rename to src/__fixtures__/account-moved.json
diff --git a/app/soapbox/__fixtures__/account-with-emojis.json b/src/__fixtures__/account-with-emojis.json
similarity index 100%
rename from app/soapbox/__fixtures__/account-with-emojis.json
rename to src/__fixtures__/account-with-emojis.json
diff --git a/app/soapbox/__fixtures__/accounts.json b/src/__fixtures__/accounts.json
similarity index 100%
rename from app/soapbox/__fixtures__/accounts.json
rename to src/__fixtures__/accounts.json
diff --git a/app/soapbox/__fixtures__/accounts_counter_follow.json b/src/__fixtures__/accounts_counter_follow.json
similarity index 100%
rename from app/soapbox/__fixtures__/accounts_counter_follow.json
rename to src/__fixtures__/accounts_counter_follow.json
diff --git a/app/soapbox/__fixtures__/accounts_counter_initial.json b/src/__fixtures__/accounts_counter_initial.json
similarity index 100%
rename from app/soapbox/__fixtures__/accounts_counter_initial.json
rename to src/__fixtures__/accounts_counter_initial.json
diff --git a/app/soapbox/__fixtures__/accounts_counter_unfollow.json b/src/__fixtures__/accounts_counter_unfollow.json
similarity index 100%
rename from app/soapbox/__fixtures__/accounts_counter_unfollow.json
rename to src/__fixtures__/accounts_counter_unfollow.json
diff --git a/app/soapbox/__fixtures__/admin_api_frontend_config.json b/src/__fixtures__/admin_api_frontend_config.json
similarity index 100%
rename from app/soapbox/__fixtures__/admin_api_frontend_config.json
rename to src/__fixtures__/admin_api_frontend_config.json
diff --git a/app/soapbox/__fixtures__/akkoma-instance.json b/src/__fixtures__/akkoma-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/akkoma-instance.json
rename to src/__fixtures__/akkoma-instance.json
diff --git a/app/soapbox/__fixtures__/announcements.json b/src/__fixtures__/announcements.json
similarity index 100%
rename from app/soapbox/__fixtures__/announcements.json
rename to src/__fixtures__/announcements.json
diff --git a/app/soapbox/__fixtures__/app.json b/src/__fixtures__/app.json
similarity index 100%
rename from app/soapbox/__fixtures__/app.json
rename to src/__fixtures__/app.json
diff --git a/app/soapbox/__fixtures__/blocks.json b/src/__fixtures__/blocks.json
similarity index 100%
rename from app/soapbox/__fixtures__/blocks.json
rename to src/__fixtures__/blocks.json
diff --git a/app/soapbox/__fixtures__/config_db.json b/src/__fixtures__/config_db.json
similarity index 100%
rename from app/soapbox/__fixtures__/config_db.json
rename to src/__fixtures__/config_db.json
diff --git a/app/soapbox/__fixtures__/fedibird-account.json b/src/__fixtures__/fedibird-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/fedibird-account.json
rename to src/__fixtures__/fedibird-account.json
diff --git a/app/soapbox/__fixtures__/fedibird-instance.json b/src/__fixtures__/fedibird-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/fedibird-instance.json
rename to src/__fixtures__/fedibird-instance.json
diff --git a/app/soapbox/__fixtures__/fedibird-quote-of-quote-post.json b/src/__fixtures__/fedibird-quote-of-quote-post.json
similarity index 100%
rename from app/soapbox/__fixtures__/fedibird-quote-of-quote-post.json
rename to src/__fixtures__/fedibird-quote-of-quote-post.json
diff --git a/app/soapbox/__fixtures__/fedibird-quote-post.json b/src/__fixtures__/fedibird-quote-post.json
similarity index 100%
rename from app/soapbox/__fixtures__/fedibird-quote-post.json
rename to src/__fixtures__/fedibird-quote-post.json
diff --git a/app/soapbox/__fixtures__/friendica-instance.json b/src/__fixtures__/friendica-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/friendica-instance.json
rename to src/__fixtures__/friendica-instance.json
diff --git a/app/soapbox/__fixtures__/friendica-status.json b/src/__fixtures__/friendica-status.json
similarity index 100%
rename from app/soapbox/__fixtures__/friendica-status.json
rename to src/__fixtures__/friendica-status.json
diff --git a/app/soapbox/__fixtures__/gotosocial-account.json b/src/__fixtures__/gotosocial-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/gotosocial-account.json
rename to src/__fixtures__/gotosocial-account.json
diff --git a/app/soapbox/__fixtures__/gotosocial-instance.json b/src/__fixtures__/gotosocial-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/gotosocial-instance.json
rename to src/__fixtures__/gotosocial-instance.json
diff --git a/app/soapbox/__fixtures__/gotosocial-status.json b/src/__fixtures__/gotosocial-status.json
similarity index 100%
rename from app/soapbox/__fixtures__/gotosocial-status.json
rename to src/__fixtures__/gotosocial-status.json
diff --git a/app/soapbox/__fixtures__/group-truthsocial.json b/src/__fixtures__/group-truthsocial.json
similarity index 100%
rename from app/soapbox/__fixtures__/group-truthsocial.json
rename to src/__fixtures__/group-truthsocial.json
diff --git a/app/soapbox/__fixtures__/intlMessages.json b/src/__fixtures__/intlMessages.json
similarity index 100%
rename from app/soapbox/__fixtures__/intlMessages.json
rename to src/__fixtures__/intlMessages.json
diff --git a/app/soapbox/__fixtures__/lain.json b/src/__fixtures__/lain.json
similarity index 100%
rename from app/soapbox/__fixtures__/lain.json
rename to src/__fixtures__/lain.json
diff --git a/app/soapbox/__fixtures__/markers.json b/src/__fixtures__/markers.json
similarity index 100%
rename from app/soapbox/__fixtures__/markers.json
rename to src/__fixtures__/markers.json
diff --git a/app/soapbox/__fixtures__/mastodon-3.0.0-instance.json b/src/__fixtures__/mastodon-3.0.0-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon-3.0.0-instance.json
rename to src/__fixtures__/mastodon-3.0.0-instance.json
diff --git a/app/soapbox/__fixtures__/mastodon-account.json b/src/__fixtures__/mastodon-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon-account.json
rename to src/__fixtures__/mastodon-account.json
diff --git a/app/soapbox/__fixtures__/mastodon-instance-rc.json b/src/__fixtures__/mastodon-instance-rc.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon-instance-rc.json
rename to src/__fixtures__/mastodon-instance-rc.json
diff --git a/app/soapbox/__fixtures__/mastodon-instance.json b/src/__fixtures__/mastodon-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon-instance.json
rename to src/__fixtures__/mastodon-instance.json
diff --git a/app/soapbox/__fixtures__/mastodon-reply-to-self.json b/src/__fixtures__/mastodon-reply-to-self.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon-reply-to-self.json
rename to src/__fixtures__/mastodon-reply-to-self.json
diff --git a/app/soapbox/__fixtures__/mastodon_initial_state.json b/src/__fixtures__/mastodon_initial_state.json
similarity index 100%
rename from app/soapbox/__fixtures__/mastodon_initial_state.json
rename to src/__fixtures__/mastodon_initial_state.json
diff --git a/app/soapbox/__fixtures__/mitra-context.json b/src/__fixtures__/mitra-context.json
similarity index 100%
rename from app/soapbox/__fixtures__/mitra-context.json
rename to src/__fixtures__/mitra-context.json
diff --git a/app/soapbox/__fixtures__/mitra-instance.json b/src/__fixtures__/mitra-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/mitra-instance.json
rename to src/__fixtures__/mitra-instance.json
diff --git a/app/soapbox/__fixtures__/mitra-status-with-attachments.json b/src/__fixtures__/mitra-status-with-attachments.json
similarity index 100%
rename from app/soapbox/__fixtures__/mitra-status-with-attachments.json
rename to src/__fixtures__/mitra-status-with-attachments.json
diff --git a/app/soapbox/__fixtures__/mk.json b/src/__fixtures__/mk.json
similarity index 100%
rename from app/soapbox/__fixtures__/mk.json
rename to src/__fixtures__/mk.json
diff --git a/app/soapbox/__fixtures__/notification-favourite.json b/src/__fixtures__/notification-favourite.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-favourite.json
rename to src/__fixtures__/notification-favourite.json
diff --git a/app/soapbox/__fixtures__/notification-follow.json b/src/__fixtures__/notification-follow.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-follow.json
rename to src/__fixtures__/notification-follow.json
diff --git a/app/soapbox/__fixtures__/notification-follow_request.json b/src/__fixtures__/notification-follow_request.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-follow_request.json
rename to src/__fixtures__/notification-follow_request.json
diff --git a/app/soapbox/__fixtures__/notification-mention.json b/src/__fixtures__/notification-mention.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-mention.json
rename to src/__fixtures__/notification-mention.json
diff --git a/app/soapbox/__fixtures__/notification-move.json b/src/__fixtures__/notification-move.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-move.json
rename to src/__fixtures__/notification-move.json
diff --git a/app/soapbox/__fixtures__/notification-pleroma-chat_mention.json b/src/__fixtures__/notification-pleroma-chat_mention.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-pleroma-chat_mention.json
rename to src/__fixtures__/notification-pleroma-chat_mention.json
diff --git a/app/soapbox/__fixtures__/notification-pleroma-emoji_reaction.json b/src/__fixtures__/notification-pleroma-emoji_reaction.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-pleroma-emoji_reaction.json
rename to src/__fixtures__/notification-pleroma-emoji_reaction.json
diff --git a/app/soapbox/__fixtures__/notification-poll.json b/src/__fixtures__/notification-poll.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-poll.json
rename to src/__fixtures__/notification-poll.json
diff --git a/app/soapbox/__fixtures__/notification-reblog.json b/src/__fixtures__/notification-reblog.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification-reblog.json
rename to src/__fixtures__/notification-reblog.json
diff --git a/app/soapbox/__fixtures__/notification.json b/src/__fixtures__/notification.json
similarity index 100%
rename from app/soapbox/__fixtures__/notification.json
rename to src/__fixtures__/notification.json
diff --git a/app/soapbox/__fixtures__/notifications.json b/src/__fixtures__/notifications.json
similarity index 100%
rename from app/soapbox/__fixtures__/notifications.json
rename to src/__fixtures__/notifications.json
diff --git a/app/soapbox/__fixtures__/patron-instance.json b/src/__fixtures__/patron-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/patron-instance.json
rename to src/__fixtures__/patron-instance.json
diff --git a/app/soapbox/__fixtures__/patron-user.json b/src/__fixtures__/patron-user.json
similarity index 100%
rename from app/soapbox/__fixtures__/patron-user.json
rename to src/__fixtures__/patron-user.json
diff --git a/app/soapbox/__fixtures__/pixelfed-instance.json b/src/__fixtures__/pixelfed-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/pixelfed-instance.json
rename to src/__fixtures__/pixelfed-instance.json
diff --git a/app/soapbox/__fixtures__/pleroma-2.2.2-account.json b/src/__fixtures__/pleroma-2.2.2-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-2.2.2-account.json
rename to src/__fixtures__/pleroma-2.2.2-account.json
diff --git a/app/soapbox/__fixtures__/pleroma-account.json b/src/__fixtures__/pleroma-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-account.json
rename to src/__fixtures__/pleroma-account.json
diff --git a/app/soapbox/__fixtures__/pleroma-admin-config.json b/src/__fixtures__/pleroma-admin-config.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-admin-config.json
rename to src/__fixtures__/pleroma-admin-config.json
diff --git a/app/soapbox/__fixtures__/pleroma-instance.json b/src/__fixtures__/pleroma-instance.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-instance.json
rename to src/__fixtures__/pleroma-instance.json
diff --git a/app/soapbox/__fixtures__/pleroma-notification-move.json b/src/__fixtures__/pleroma-notification-move.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-notification-move.json
rename to src/__fixtures__/pleroma-notification-move.json
diff --git a/app/soapbox/__fixtures__/pleroma-quote-of-quote-post.json b/src/__fixtures__/pleroma-quote-of-quote-post.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-quote-of-quote-post.json
rename to src/__fixtures__/pleroma-quote-of-quote-post.json
diff --git a/app/soapbox/__fixtures__/pleroma-quote-post.json b/src/__fixtures__/pleroma-quote-post.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-quote-post.json
rename to src/__fixtures__/pleroma-quote-post.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-deleted.json b/src/__fixtures__/pleroma-status-deleted.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-deleted.json
rename to src/__fixtures__/pleroma-status-deleted.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-reply-with-mentions.json b/src/__fixtures__/pleroma-status-reply-with-mentions.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-reply-with-mentions.json
rename to src/__fixtures__/pleroma-status-reply-with-mentions.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-vertical-video-without-metadata.json b/src/__fixtures__/pleroma-status-vertical-video-without-metadata.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-vertical-video-without-metadata.json
rename to src/__fixtures__/pleroma-status-vertical-video-without-metadata.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-with-attachments.json b/src/__fixtures__/pleroma-status-with-attachments.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-with-attachments.json
rename to src/__fixtures__/pleroma-status-with-attachments.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-with-poll-with-emojis.json b/src/__fixtures__/pleroma-status-with-poll-with-emojis.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-with-poll-with-emojis.json
rename to src/__fixtures__/pleroma-status-with-poll-with-emojis.json
diff --git a/app/soapbox/__fixtures__/pleroma-status-with-poll.json b/src/__fixtures__/pleroma-status-with-poll.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status-with-poll.json
rename to src/__fixtures__/pleroma-status-with-poll.json
diff --git a/app/soapbox/__fixtures__/pleroma-status.json b/src/__fixtures__/pleroma-status.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma-status.json
rename to src/__fixtures__/pleroma-status.json
diff --git a/app/soapbox/__fixtures__/pleroma_initial_results.json b/src/__fixtures__/pleroma_initial_results.json
similarity index 100%
rename from app/soapbox/__fixtures__/pleroma_initial_results.json
rename to src/__fixtures__/pleroma_initial_results.json
diff --git a/app/soapbox/__fixtures__/realDonaldTrump.json b/src/__fixtures__/realDonaldTrump.json
similarity index 100%
rename from app/soapbox/__fixtures__/realDonaldTrump.json
rename to src/__fixtures__/realDonaldTrump.json
diff --git a/app/soapbox/__fixtures__/relationship.json b/src/__fixtures__/relationship.json
similarity index 100%
rename from app/soapbox/__fixtures__/relationship.json
rename to src/__fixtures__/relationship.json
diff --git a/app/soapbox/__fixtures__/rules.json b/src/__fixtures__/rules.json
similarity index 100%
rename from app/soapbox/__fixtures__/rules.json
rename to src/__fixtures__/rules.json
diff --git a/app/soapbox/__fixtures__/soapbox.json b/src/__fixtures__/soapbox.json
similarity index 100%
rename from app/soapbox/__fixtures__/soapbox.json
rename to src/__fixtures__/soapbox.json
diff --git a/app/soapbox/__fixtures__/spinster-soapbox.json b/src/__fixtures__/spinster-soapbox.json
similarity index 100%
rename from app/soapbox/__fixtures__/spinster-soapbox.json
rename to src/__fixtures__/spinster-soapbox.json
diff --git a/app/soapbox/__fixtures__/status-custom-emoji.json b/src/__fixtures__/status-custom-emoji.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-custom-emoji.json
rename to src/__fixtures__/status-custom-emoji.json
diff --git a/app/soapbox/__fixtures__/status-cw.json b/src/__fixtures__/status-cw.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-cw.json
rename to src/__fixtures__/status-cw.json
diff --git a/app/soapbox/__fixtures__/status-quotes.json b/src/__fixtures__/status-quotes.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-quotes.json
rename to src/__fixtures__/status-quotes.json
diff --git a/app/soapbox/__fixtures__/status-unordered-mentions.json b/src/__fixtures__/status-unordered-mentions.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-unordered-mentions.json
rename to src/__fixtures__/status-unordered-mentions.json
diff --git a/app/soapbox/__fixtures__/status-with-card.json b/src/__fixtures__/status-with-card.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-with-card.json
rename to src/__fixtures__/status-with-card.json
diff --git a/app/soapbox/__fixtures__/status-with-poll.json b/src/__fixtures__/status-with-poll.json
similarity index 100%
rename from app/soapbox/__fixtures__/status-with-poll.json
rename to src/__fixtures__/status-with-poll.json
diff --git a/app/soapbox/__fixtures__/truthsocial-account.json b/src/__fixtures__/truthsocial-account.json
similarity index 100%
rename from app/soapbox/__fixtures__/truthsocial-account.json
rename to src/__fixtures__/truthsocial-account.json
diff --git a/app/soapbox/__fixtures__/truthsocial-status-in-moderation.json b/src/__fixtures__/truthsocial-status-in-moderation.json
similarity index 100%
rename from app/soapbox/__fixtures__/truthsocial-status-in-moderation.json
rename to src/__fixtures__/truthsocial-status-in-moderation.json
diff --git a/app/soapbox/__fixtures__/user.json b/src/__fixtures__/user.json
similarity index 100%
rename from app/soapbox/__fixtures__/user.json
rename to src/__fixtures__/user.json
diff --git a/app/soapbox/__tests__/toast.test.tsx b/src/__tests__/toast.test.tsx
similarity index 98%
rename from app/soapbox/__tests__/toast.test.tsx
rename to src/__tests__/toast.test.tsx
index 795c11493..bdeff2249 100644
--- a/app/soapbox/__tests__/toast.test.tsx
+++ b/src/__tests__/toast.test.tsx
@@ -20,7 +20,7 @@ function renderApp() {
}
beforeAll(() => {
- jest.spyOn(console, 'error').mockImplementation(() => {});
+ vi.spyOn(console, 'error').mockImplementation(() => {});
});
afterEach(() => {
diff --git a/app/soapbox/actions/__tests__/about.test.ts b/src/actions/__tests__/about.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/about.test.ts
rename to src/actions/__tests__/about.test.ts
diff --git a/app/soapbox/actions/__tests__/account-notes.test.ts b/src/actions/__tests__/account-notes.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/account-notes.test.ts
rename to src/actions/__tests__/account-notes.test.ts
diff --git a/app/soapbox/actions/__tests__/accounts.test.ts b/src/actions/__tests__/accounts.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/accounts.test.ts
rename to src/actions/__tests__/accounts.test.ts
diff --git a/app/soapbox/actions/__tests__/announcements.test.ts b/src/actions/__tests__/announcements.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/announcements.test.ts
rename to src/actions/__tests__/announcements.test.ts
diff --git a/app/soapbox/actions/__tests__/blocks.test.ts b/src/actions/__tests__/blocks.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/blocks.test.ts
rename to src/actions/__tests__/blocks.test.ts
diff --git a/app/soapbox/actions/__tests__/compose.test.ts b/src/actions/__tests__/compose.test.ts
similarity index 94%
rename from app/soapbox/actions/__tests__/compose.test.ts
rename to src/actions/__tests__/compose.test.ts
index 58f83e537..f6c64c929 100644
--- a/app/soapbox/actions/__tests__/compose.test.ts
+++ b/src/actions/__tests__/compose.test.ts
@@ -41,7 +41,7 @@ describe('uploadCompose()', () => {
it('creates an alert if exceeds max size', async() => {
const mockIntl = {
- formatMessage: jest.fn().mockReturnValue('Image exceeds the current file size limit (10 Bytes)'),
+ formatMessage: vi.fn().mockReturnValue('Image exceeds the current file size limit (10 Bytes)'),
} as unknown as IntlShape;
const expectedActions = [
@@ -87,7 +87,7 @@ describe('uploadCompose()', () => {
it('creates an alert if exceeds max size', async() => {
const mockIntl = {
- formatMessage: jest.fn().mockReturnValue('Video exceeds the current file size limit (10 Bytes)'),
+ formatMessage: vi.fn().mockReturnValue('Video exceeds the current file size limit (10 Bytes)'),
} as unknown as IntlShape;
const expectedActions = [
diff --git a/app/soapbox/actions/__tests__/me.test.ts b/src/actions/__tests__/me.test.ts
similarity index 96%
rename from app/soapbox/actions/__tests__/me.test.ts
rename to src/actions/__tests__/me.test.ts
index 91fba12fa..0187ba093 100644
--- a/app/soapbox/actions/__tests__/me.test.ts
+++ b/src/actions/__tests__/me.test.ts
@@ -7,10 +7,10 @@ import { AuthUserRecord, ReducerRecord } from 'soapbox/reducers/auth';
import { fetchMe, patchMe } from '../me';
-jest.mock('../../storage/kv-store', () => ({
+vi.mock('../../storage/kv-store', () => ({
__esModule: true,
default: {
- getItemOrError: jest.fn().mockReturnValue(Promise.resolve({})),
+ getItemOrError: vi.fn().mockReturnValue(Promise.resolve({})),
},
}));
diff --git a/app/soapbox/actions/__tests__/notifications.test.ts b/src/actions/__tests__/notifications.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/notifications.test.ts
rename to src/actions/__tests__/notifications.test.ts
diff --git a/app/soapbox/actions/__tests__/onboarding.test.ts b/src/actions/__tests__/onboarding.test.ts
similarity index 90%
rename from app/soapbox/actions/__tests__/onboarding.test.ts
rename to src/actions/__tests__/onboarding.test.ts
index f786c7f90..15a10f93a 100644
--- a/app/soapbox/actions/__tests__/onboarding.test.ts
+++ b/src/actions/__tests__/onboarding.test.ts
@@ -10,11 +10,11 @@ describe('checkOnboarding()', () => {
});
beforeEach(() => {
- mockGetItem = jest.fn().mockReturnValue(null);
+ mockGetItem = vi.fn().mockReturnValue(null);
});
it('does nothing if localStorage item is not set', async() => {
- mockGetItem = jest.fn().mockReturnValue(null);
+ mockGetItem = vi.fn().mockReturnValue(null);
const state = rootState.setIn(['onboarding', 'needsOnboarding'], false);
const store = mockStore(state);
@@ -27,7 +27,7 @@ describe('checkOnboarding()', () => {
});
it('does nothing if localStorage item is invalid', async() => {
- mockGetItem = jest.fn().mockReturnValue('invalid');
+ mockGetItem = vi.fn().mockReturnValue('invalid');
const state = rootState.setIn(['onboarding', 'needsOnboarding'], false);
const store = mockStore(state);
@@ -40,7 +40,7 @@ describe('checkOnboarding()', () => {
});
it('dispatches the correct action', async() => {
- mockGetItem = jest.fn().mockReturnValue('1');
+ mockGetItem = vi.fn().mockReturnValue('1');
const state = rootState.setIn(['onboarding', 'needsOnboarding'], false);
const store = mockStore(state);
@@ -61,7 +61,7 @@ describe('startOnboarding()', () => {
});
beforeEach(() => {
- mockSetItem = jest.fn();
+ mockSetItem = vi.fn();
});
it('dispatches the correct action', async() => {
@@ -84,7 +84,7 @@ describe('endOnboarding()', () => {
});
beforeEach(() => {
- mockRemoveItem = jest.fn();
+ mockRemoveItem = vi.fn();
});
it('dispatches the correct action', async() => {
diff --git a/app/soapbox/actions/__tests__/preload.test.ts b/src/actions/__tests__/preload.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/preload.test.ts
rename to src/actions/__tests__/preload.test.ts
diff --git a/app/soapbox/actions/__tests__/rules.test.ts b/src/actions/__tests__/rules.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/rules.test.ts
rename to src/actions/__tests__/rules.test.ts
diff --git a/app/soapbox/actions/__tests__/soapbox.test.ts b/src/actions/__tests__/soapbox.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/soapbox.test.ts
rename to src/actions/__tests__/soapbox.test.ts
diff --git a/app/soapbox/actions/__tests__/status-quotes.test.ts b/src/actions/__tests__/status-quotes.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/status-quotes.test.ts
rename to src/actions/__tests__/status-quotes.test.ts
diff --git a/app/soapbox/actions/__tests__/statuses.test.ts b/src/actions/__tests__/statuses.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/statuses.test.ts
rename to src/actions/__tests__/statuses.test.ts
diff --git a/app/soapbox/actions/__tests__/suggestions.test.ts b/src/actions/__tests__/suggestions.test.ts
similarity index 100%
rename from app/soapbox/actions/__tests__/suggestions.test.ts
rename to src/actions/__tests__/suggestions.test.ts
diff --git a/app/soapbox/actions/about.ts b/src/actions/about.ts
similarity index 79%
rename from app/soapbox/actions/about.ts
rename to src/actions/about.ts
index 07a486fd2..c8410ded8 100644
--- a/app/soapbox/actions/about.ts
+++ b/src/actions/about.ts
@@ -1,16 +1,17 @@
-import { staticClient } from '../api';
+import api from '../api';
import type { AnyAction } from 'redux';
+import type { RootState } from 'soapbox/store';
const FETCH_ABOUT_PAGE_REQUEST = 'FETCH_ABOUT_PAGE_REQUEST';
const FETCH_ABOUT_PAGE_SUCCESS = 'FETCH_ABOUT_PAGE_SUCCESS';
const FETCH_ABOUT_PAGE_FAIL = 'FETCH_ABOUT_PAGE_FAIL';
-const fetchAboutPage = (slug = 'index', locale?: string) => (dispatch: React.Dispatch
) => {
+const fetchAboutPage = (slug = 'index', locale?: string) => (dispatch: React.Dispatch, getState: () => RootState) => {
dispatch({ type: FETCH_ABOUT_PAGE_REQUEST, slug, locale });
const filename = `${slug}${locale ? `.${locale}` : ''}.html`;
- return staticClient.get(`/instance/about/${filename}`)
+ return api(getState).get(`/instance/about/${filename}`)
.then(({ data: html }) => {
dispatch({ type: FETCH_ABOUT_PAGE_SUCCESS, slug, locale, html });
return html;
diff --git a/app/soapbox/actions/account-notes.ts b/src/actions/account-notes.ts
similarity index 100%
rename from app/soapbox/actions/account-notes.ts
rename to src/actions/account-notes.ts
diff --git a/app/soapbox/actions/accounts.ts b/src/actions/accounts.ts
similarity index 100%
rename from app/soapbox/actions/accounts.ts
rename to src/actions/accounts.ts
diff --git a/app/soapbox/actions/admin.ts b/src/actions/admin.ts
similarity index 100%
rename from app/soapbox/actions/admin.ts
rename to src/actions/admin.ts
diff --git a/app/soapbox/actions/aliases.ts b/src/actions/aliases.ts
similarity index 100%
rename from app/soapbox/actions/aliases.ts
rename to src/actions/aliases.ts
diff --git a/app/soapbox/actions/announcements.ts b/src/actions/announcements.ts
similarity index 100%
rename from app/soapbox/actions/announcements.ts
rename to src/actions/announcements.ts
diff --git a/app/soapbox/actions/apps.ts b/src/actions/apps.ts
similarity index 100%
rename from app/soapbox/actions/apps.ts
rename to src/actions/apps.ts
diff --git a/app/soapbox/actions/auth.ts b/src/actions/auth.ts
similarity index 100%
rename from app/soapbox/actions/auth.ts
rename to src/actions/auth.ts
diff --git a/app/soapbox/actions/backups.ts b/src/actions/backups.ts
similarity index 100%
rename from app/soapbox/actions/backups.ts
rename to src/actions/backups.ts
diff --git a/app/soapbox/actions/blocks.ts b/src/actions/blocks.ts
similarity index 100%
rename from app/soapbox/actions/blocks.ts
rename to src/actions/blocks.ts
diff --git a/app/soapbox/actions/bookmarks.ts b/src/actions/bookmarks.ts
similarity index 100%
rename from app/soapbox/actions/bookmarks.ts
rename to src/actions/bookmarks.ts
diff --git a/app/soapbox/actions/bundles.ts b/src/actions/bundles.ts
similarity index 100%
rename from app/soapbox/actions/bundles.ts
rename to src/actions/bundles.ts
diff --git a/app/soapbox/actions/chats.ts b/src/actions/chats.ts
similarity index 100%
rename from app/soapbox/actions/chats.ts
rename to src/actions/chats.ts
diff --git a/app/soapbox/actions/compose.ts b/src/actions/compose.ts
similarity index 100%
rename from app/soapbox/actions/compose.ts
rename to src/actions/compose.ts
diff --git a/app/soapbox/actions/consumer-auth.ts b/src/actions/consumer-auth.ts
similarity index 100%
rename from app/soapbox/actions/consumer-auth.ts
rename to src/actions/consumer-auth.ts
diff --git a/app/soapbox/actions/conversations.ts b/src/actions/conversations.ts
similarity index 100%
rename from app/soapbox/actions/conversations.ts
rename to src/actions/conversations.ts
diff --git a/app/soapbox/actions/custom-emojis.ts b/src/actions/custom-emojis.ts
similarity index 100%
rename from app/soapbox/actions/custom-emojis.ts
rename to src/actions/custom-emojis.ts
diff --git a/app/soapbox/actions/directory.ts b/src/actions/directory.ts
similarity index 100%
rename from app/soapbox/actions/directory.ts
rename to src/actions/directory.ts
diff --git a/app/soapbox/actions/domain-blocks.ts b/src/actions/domain-blocks.ts
similarity index 100%
rename from app/soapbox/actions/domain-blocks.ts
rename to src/actions/domain-blocks.ts
diff --git a/app/soapbox/actions/dropdown-menu.ts b/src/actions/dropdown-menu.ts
similarity index 100%
rename from app/soapbox/actions/dropdown-menu.ts
rename to src/actions/dropdown-menu.ts
diff --git a/app/soapbox/actions/email-list.ts b/src/actions/email-list.ts
similarity index 100%
rename from app/soapbox/actions/email-list.ts
rename to src/actions/email-list.ts
diff --git a/app/soapbox/actions/emoji-reacts.ts b/src/actions/emoji-reacts.ts
similarity index 100%
rename from app/soapbox/actions/emoji-reacts.ts
rename to src/actions/emoji-reacts.ts
diff --git a/app/soapbox/actions/emojis.ts b/src/actions/emojis.ts
similarity index 100%
rename from app/soapbox/actions/emojis.ts
rename to src/actions/emojis.ts
diff --git a/app/soapbox/actions/events.ts b/src/actions/events.ts
similarity index 100%
rename from app/soapbox/actions/events.ts
rename to src/actions/events.ts
diff --git a/app/soapbox/actions/export-data.ts b/src/actions/export-data.ts
similarity index 100%
rename from app/soapbox/actions/export-data.ts
rename to src/actions/export-data.ts
diff --git a/app/soapbox/actions/external-auth.ts b/src/actions/external-auth.ts
similarity index 100%
rename from app/soapbox/actions/external-auth.ts
rename to src/actions/external-auth.ts
diff --git a/app/soapbox/actions/familiar-followers.ts b/src/actions/familiar-followers.ts
similarity index 100%
rename from app/soapbox/actions/familiar-followers.ts
rename to src/actions/familiar-followers.ts
diff --git a/app/soapbox/actions/favourites.ts b/src/actions/favourites.ts
similarity index 100%
rename from app/soapbox/actions/favourites.ts
rename to src/actions/favourites.ts
diff --git a/app/soapbox/actions/filters.ts b/src/actions/filters.ts
similarity index 100%
rename from app/soapbox/actions/filters.ts
rename to src/actions/filters.ts
diff --git a/app/soapbox/actions/groups.ts b/src/actions/groups.ts
similarity index 100%
rename from app/soapbox/actions/groups.ts
rename to src/actions/groups.ts
diff --git a/app/soapbox/actions/history.ts b/src/actions/history.ts
similarity index 100%
rename from app/soapbox/actions/history.ts
rename to src/actions/history.ts
diff --git a/app/soapbox/actions/import-data.ts b/src/actions/import-data.ts
similarity index 100%
rename from app/soapbox/actions/import-data.ts
rename to src/actions/import-data.ts
diff --git a/app/soapbox/actions/importer/index.ts b/src/actions/importer/index.ts
similarity index 100%
rename from app/soapbox/actions/importer/index.ts
rename to src/actions/importer/index.ts
diff --git a/app/soapbox/actions/instance.ts b/src/actions/instance.ts
similarity index 100%
rename from app/soapbox/actions/instance.ts
rename to src/actions/instance.ts
diff --git a/app/soapbox/actions/interactions.ts b/src/actions/interactions.ts
similarity index 100%
rename from app/soapbox/actions/interactions.ts
rename to src/actions/interactions.ts
diff --git a/app/soapbox/actions/lists.ts b/src/actions/lists.ts
similarity index 100%
rename from app/soapbox/actions/lists.ts
rename to src/actions/lists.ts
diff --git a/app/soapbox/actions/markers.ts b/src/actions/markers.ts
similarity index 100%
rename from app/soapbox/actions/markers.ts
rename to src/actions/markers.ts
diff --git a/app/soapbox/actions/me.ts b/src/actions/me.ts
similarity index 100%
rename from app/soapbox/actions/me.ts
rename to src/actions/me.ts
diff --git a/app/soapbox/actions/media.ts b/src/actions/media.ts
similarity index 100%
rename from app/soapbox/actions/media.ts
rename to src/actions/media.ts
diff --git a/app/soapbox/actions/mfa.ts b/src/actions/mfa.ts
similarity index 100%
rename from app/soapbox/actions/mfa.ts
rename to src/actions/mfa.ts
diff --git a/app/soapbox/actions/modals.ts b/src/actions/modals.ts
similarity index 100%
rename from app/soapbox/actions/modals.ts
rename to src/actions/modals.ts
diff --git a/app/soapbox/actions/moderation.tsx b/src/actions/moderation.tsx
similarity index 100%
rename from app/soapbox/actions/moderation.tsx
rename to src/actions/moderation.tsx
diff --git a/app/soapbox/actions/mrf.ts b/src/actions/mrf.ts
similarity index 100%
rename from app/soapbox/actions/mrf.ts
rename to src/actions/mrf.ts
diff --git a/app/soapbox/actions/mutes.ts b/src/actions/mutes.ts
similarity index 100%
rename from app/soapbox/actions/mutes.ts
rename to src/actions/mutes.ts
diff --git a/app/soapbox/actions/notifications.ts b/src/actions/notifications.ts
similarity index 100%
rename from app/soapbox/actions/notifications.ts
rename to src/actions/notifications.ts
diff --git a/app/soapbox/actions/oauth.ts b/src/actions/oauth.ts
similarity index 100%
rename from app/soapbox/actions/oauth.ts
rename to src/actions/oauth.ts
diff --git a/app/soapbox/actions/onboarding.ts b/src/actions/onboarding.ts
similarity index 100%
rename from app/soapbox/actions/onboarding.ts
rename to src/actions/onboarding.ts
diff --git a/app/soapbox/actions/patron.ts b/src/actions/patron.ts
similarity index 100%
rename from app/soapbox/actions/patron.ts
rename to src/actions/patron.ts
diff --git a/app/soapbox/actions/pin-statuses.ts b/src/actions/pin-statuses.ts
similarity index 100%
rename from app/soapbox/actions/pin-statuses.ts
rename to src/actions/pin-statuses.ts
diff --git a/app/soapbox/actions/polls.ts b/src/actions/polls.ts
similarity index 100%
rename from app/soapbox/actions/polls.ts
rename to src/actions/polls.ts
diff --git a/app/soapbox/actions/preload.ts b/src/actions/preload.ts
similarity index 100%
rename from app/soapbox/actions/preload.ts
rename to src/actions/preload.ts
diff --git a/app/soapbox/actions/profile-hover-card.ts b/src/actions/profile-hover-card.ts
similarity index 100%
rename from app/soapbox/actions/profile-hover-card.ts
rename to src/actions/profile-hover-card.ts
diff --git a/app/soapbox/actions/push-notifications/index.ts b/src/actions/push-notifications/index.ts
similarity index 100%
rename from app/soapbox/actions/push-notifications/index.ts
rename to src/actions/push-notifications/index.ts
diff --git a/app/soapbox/actions/push-notifications/registerer.ts b/src/actions/push-notifications/registerer.ts
similarity index 100%
rename from app/soapbox/actions/push-notifications/registerer.ts
rename to src/actions/push-notifications/registerer.ts
diff --git a/app/soapbox/actions/push-notifications/setter.ts b/src/actions/push-notifications/setter.ts
similarity index 100%
rename from app/soapbox/actions/push-notifications/setter.ts
rename to src/actions/push-notifications/setter.ts
diff --git a/app/soapbox/actions/push-subscriptions.ts b/src/actions/push-subscriptions.ts
similarity index 100%
rename from app/soapbox/actions/push-subscriptions.ts
rename to src/actions/push-subscriptions.ts
diff --git a/app/soapbox/actions/remote-timeline.ts b/src/actions/remote-timeline.ts
similarity index 100%
rename from app/soapbox/actions/remote-timeline.ts
rename to src/actions/remote-timeline.ts
diff --git a/app/soapbox/actions/reports.ts b/src/actions/reports.ts
similarity index 100%
rename from app/soapbox/actions/reports.ts
rename to src/actions/reports.ts
diff --git a/app/soapbox/actions/rules.ts b/src/actions/rules.ts
similarity index 100%
rename from app/soapbox/actions/rules.ts
rename to src/actions/rules.ts
diff --git a/app/soapbox/actions/scheduled-statuses.ts b/src/actions/scheduled-statuses.ts
similarity index 100%
rename from app/soapbox/actions/scheduled-statuses.ts
rename to src/actions/scheduled-statuses.ts
diff --git a/app/soapbox/actions/search.ts b/src/actions/search.ts
similarity index 100%
rename from app/soapbox/actions/search.ts
rename to src/actions/search.ts
diff --git a/app/soapbox/actions/security.ts b/src/actions/security.ts
similarity index 100%
rename from app/soapbox/actions/security.ts
rename to src/actions/security.ts
diff --git a/app/soapbox/actions/settings.ts b/src/actions/settings.ts
similarity index 100%
rename from app/soapbox/actions/settings.ts
rename to src/actions/settings.ts
diff --git a/app/soapbox/actions/sidebar.ts b/src/actions/sidebar.ts
similarity index 100%
rename from app/soapbox/actions/sidebar.ts
rename to src/actions/sidebar.ts
diff --git a/app/soapbox/actions/soapbox.ts b/src/actions/soapbox.ts
similarity index 100%
rename from app/soapbox/actions/soapbox.ts
rename to src/actions/soapbox.ts
diff --git a/app/soapbox/actions/status-hover-card.ts b/src/actions/status-hover-card.ts
similarity index 100%
rename from app/soapbox/actions/status-hover-card.ts
rename to src/actions/status-hover-card.ts
diff --git a/app/soapbox/actions/status-quotes.ts b/src/actions/status-quotes.ts
similarity index 100%
rename from app/soapbox/actions/status-quotes.ts
rename to src/actions/status-quotes.ts
diff --git a/app/soapbox/actions/statuses.ts b/src/actions/statuses.ts
similarity index 100%
rename from app/soapbox/actions/statuses.ts
rename to src/actions/statuses.ts
diff --git a/app/soapbox/actions/streaming.ts b/src/actions/streaming.ts
similarity index 100%
rename from app/soapbox/actions/streaming.ts
rename to src/actions/streaming.ts
diff --git a/app/soapbox/actions/suggestions.ts b/src/actions/suggestions.ts
similarity index 100%
rename from app/soapbox/actions/suggestions.ts
rename to src/actions/suggestions.ts
diff --git a/app/soapbox/actions/sw.ts b/src/actions/sw.ts
similarity index 100%
rename from app/soapbox/actions/sw.ts
rename to src/actions/sw.ts
diff --git a/app/soapbox/actions/tags.ts b/src/actions/tags.ts
similarity index 100%
rename from app/soapbox/actions/tags.ts
rename to src/actions/tags.ts
diff --git a/app/soapbox/actions/timelines.ts b/src/actions/timelines.ts
similarity index 100%
rename from app/soapbox/actions/timelines.ts
rename to src/actions/timelines.ts
diff --git a/app/soapbox/actions/trending-statuses.ts b/src/actions/trending-statuses.ts
similarity index 100%
rename from app/soapbox/actions/trending-statuses.ts
rename to src/actions/trending-statuses.ts
diff --git a/app/soapbox/actions/trends.ts b/src/actions/trends.ts
similarity index 100%
rename from app/soapbox/actions/trends.ts
rename to src/actions/trends.ts
diff --git a/app/soapbox/api/__mocks__/index.ts b/src/api/__mocks__/index.ts
similarity index 100%
rename from app/soapbox/api/__mocks__/index.ts
rename to src/api/__mocks__/index.ts
diff --git a/app/soapbox/api/hooks/accounts/useAccount.ts b/src/api/hooks/accounts/useAccount.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useAccount.ts
rename to src/api/hooks/accounts/useAccount.ts
diff --git a/app/soapbox/api/hooks/accounts/useAccountList.ts b/src/api/hooks/accounts/useAccountList.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useAccountList.ts
rename to src/api/hooks/accounts/useAccountList.ts
diff --git a/app/soapbox/api/hooks/accounts/useAccountLookup.ts b/src/api/hooks/accounts/useAccountLookup.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useAccountLookup.ts
rename to src/api/hooks/accounts/useAccountLookup.ts
diff --git a/app/soapbox/api/hooks/accounts/useFollow.ts b/src/api/hooks/accounts/useFollow.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useFollow.ts
rename to src/api/hooks/accounts/useFollow.ts
diff --git a/app/soapbox/api/hooks/accounts/usePatronUser.ts b/src/api/hooks/accounts/usePatronUser.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/usePatronUser.ts
rename to src/api/hooks/accounts/usePatronUser.ts
diff --git a/app/soapbox/api/hooks/accounts/useRelationship.ts b/src/api/hooks/accounts/useRelationship.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useRelationship.ts
rename to src/api/hooks/accounts/useRelationship.ts
diff --git a/app/soapbox/api/hooks/accounts/useRelationships.ts b/src/api/hooks/accounts/useRelationships.ts
similarity index 100%
rename from app/soapbox/api/hooks/accounts/useRelationships.ts
rename to src/api/hooks/accounts/useRelationships.ts
diff --git a/app/soapbox/api/hooks/admin/index.ts b/src/api/hooks/admin/index.ts
similarity index 100%
rename from app/soapbox/api/hooks/admin/index.ts
rename to src/api/hooks/admin/index.ts
diff --git a/app/soapbox/api/hooks/admin/useSuggest.ts b/src/api/hooks/admin/useSuggest.ts
similarity index 100%
rename from app/soapbox/api/hooks/admin/useSuggest.ts
rename to src/api/hooks/admin/useSuggest.ts
diff --git a/app/soapbox/api/hooks/admin/useVerify.ts b/src/api/hooks/admin/useVerify.ts
similarity index 100%
rename from app/soapbox/api/hooks/admin/useVerify.ts
rename to src/api/hooks/admin/useVerify.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/useGroup.test.ts b/src/api/hooks/groups/__tests__/useGroup.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/useGroup.test.ts
rename to src/api/hooks/groups/__tests__/useGroup.test.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/useGroupLookup.test.ts b/src/api/hooks/groups/__tests__/useGroupLookup.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/useGroupLookup.test.ts
rename to src/api/hooks/groups/__tests__/useGroupLookup.test.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/useGroupMedia.test.ts b/src/api/hooks/groups/__tests__/useGroupMedia.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/useGroupMedia.test.ts
rename to src/api/hooks/groups/__tests__/useGroupMedia.test.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/useGroupMembers.test.ts b/src/api/hooks/groups/__tests__/useGroupMembers.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/useGroupMembers.test.ts
rename to src/api/hooks/groups/__tests__/useGroupMembers.test.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/useGroups.test.ts b/src/api/hooks/groups/__tests__/useGroups.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/useGroups.test.ts
rename to src/api/hooks/groups/__tests__/useGroups.test.ts
diff --git a/app/soapbox/api/hooks/groups/__tests__/usePendingGroups.test.ts b/src/api/hooks/groups/__tests__/usePendingGroups.test.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/__tests__/usePendingGroups.test.ts
rename to src/api/hooks/groups/__tests__/usePendingGroups.test.ts
diff --git a/app/soapbox/api/hooks/groups/useBlockGroupMember.ts b/src/api/hooks/groups/useBlockGroupMember.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useBlockGroupMember.ts
rename to src/api/hooks/groups/useBlockGroupMember.ts
diff --git a/app/soapbox/api/hooks/groups/useCancelMembershipRequest.ts b/src/api/hooks/groups/useCancelMembershipRequest.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useCancelMembershipRequest.ts
rename to src/api/hooks/groups/useCancelMembershipRequest.ts
diff --git a/app/soapbox/api/hooks/groups/useCreateGroup.ts b/src/api/hooks/groups/useCreateGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useCreateGroup.ts
rename to src/api/hooks/groups/useCreateGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useDeleteGroup.ts b/src/api/hooks/groups/useDeleteGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useDeleteGroup.ts
rename to src/api/hooks/groups/useDeleteGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useDeleteGroupStatus.ts b/src/api/hooks/groups/useDeleteGroupStatus.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useDeleteGroupStatus.ts
rename to src/api/hooks/groups/useDeleteGroupStatus.ts
diff --git a/app/soapbox/api/hooks/groups/useDemoteGroupMember.ts b/src/api/hooks/groups/useDemoteGroupMember.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useDemoteGroupMember.ts
rename to src/api/hooks/groups/useDemoteGroupMember.ts
diff --git a/app/soapbox/api/hooks/groups/useGroup.ts b/src/api/hooks/groups/useGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroup.ts
rename to src/api/hooks/groups/useGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupLookup.ts b/src/api/hooks/groups/useGroupLookup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupLookup.ts
rename to src/api/hooks/groups/useGroupLookup.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupMedia.ts b/src/api/hooks/groups/useGroupMedia.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupMedia.ts
rename to src/api/hooks/groups/useGroupMedia.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupMembers.ts b/src/api/hooks/groups/useGroupMembers.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupMembers.ts
rename to src/api/hooks/groups/useGroupMembers.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupMembershipRequests.ts b/src/api/hooks/groups/useGroupMembershipRequests.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupMembershipRequests.ts
rename to src/api/hooks/groups/useGroupMembershipRequests.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupMutes.ts b/src/api/hooks/groups/useGroupMutes.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupMutes.ts
rename to src/api/hooks/groups/useGroupMutes.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupRelationship.ts b/src/api/hooks/groups/useGroupRelationship.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupRelationship.ts
rename to src/api/hooks/groups/useGroupRelationship.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupRelationships.ts b/src/api/hooks/groups/useGroupRelationships.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupRelationships.ts
rename to src/api/hooks/groups/useGroupRelationships.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupSearch.ts b/src/api/hooks/groups/useGroupSearch.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupSearch.ts
rename to src/api/hooks/groups/useGroupSearch.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupTag.ts b/src/api/hooks/groups/useGroupTag.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupTag.ts
rename to src/api/hooks/groups/useGroupTag.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupTags.ts b/src/api/hooks/groups/useGroupTags.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupTags.ts
rename to src/api/hooks/groups/useGroupTags.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupValidation.ts b/src/api/hooks/groups/useGroupValidation.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupValidation.ts
rename to src/api/hooks/groups/useGroupValidation.ts
diff --git a/app/soapbox/api/hooks/groups/useGroups.ts b/src/api/hooks/groups/useGroups.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroups.ts
rename to src/api/hooks/groups/useGroups.ts
diff --git a/app/soapbox/api/hooks/groups/useGroupsFromTag.ts b/src/api/hooks/groups/useGroupsFromTag.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useGroupsFromTag.ts
rename to src/api/hooks/groups/useGroupsFromTag.ts
diff --git a/app/soapbox/api/hooks/groups/useJoinGroup.ts b/src/api/hooks/groups/useJoinGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useJoinGroup.ts
rename to src/api/hooks/groups/useJoinGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useLeaveGroup.ts b/src/api/hooks/groups/useLeaveGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useLeaveGroup.ts
rename to src/api/hooks/groups/useLeaveGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useMuteGroup.ts b/src/api/hooks/groups/useMuteGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useMuteGroup.ts
rename to src/api/hooks/groups/useMuteGroup.ts
diff --git a/app/soapbox/api/hooks/groups/usePendingGroups.ts b/src/api/hooks/groups/usePendingGroups.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/usePendingGroups.ts
rename to src/api/hooks/groups/usePendingGroups.ts
diff --git a/app/soapbox/api/hooks/groups/usePopularGroups.ts b/src/api/hooks/groups/usePopularGroups.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/usePopularGroups.ts
rename to src/api/hooks/groups/usePopularGroups.ts
diff --git a/app/soapbox/api/hooks/groups/usePopularTags.ts b/src/api/hooks/groups/usePopularTags.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/usePopularTags.ts
rename to src/api/hooks/groups/usePopularTags.ts
diff --git a/app/soapbox/api/hooks/groups/usePromoteGroupMember.ts b/src/api/hooks/groups/usePromoteGroupMember.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/usePromoteGroupMember.ts
rename to src/api/hooks/groups/usePromoteGroupMember.ts
diff --git a/app/soapbox/api/hooks/groups/useSuggestedGroups.ts b/src/api/hooks/groups/useSuggestedGroups.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useSuggestedGroups.ts
rename to src/api/hooks/groups/useSuggestedGroups.ts
diff --git a/app/soapbox/api/hooks/groups/useUnmuteGroup.ts b/src/api/hooks/groups/useUnmuteGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useUnmuteGroup.ts
rename to src/api/hooks/groups/useUnmuteGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useUpdateGroup.ts b/src/api/hooks/groups/useUpdateGroup.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useUpdateGroup.ts
rename to src/api/hooks/groups/useUpdateGroup.ts
diff --git a/app/soapbox/api/hooks/groups/useUpdateGroupTag.ts b/src/api/hooks/groups/useUpdateGroupTag.ts
similarity index 100%
rename from app/soapbox/api/hooks/groups/useUpdateGroupTag.ts
rename to src/api/hooks/groups/useUpdateGroupTag.ts
diff --git a/app/soapbox/api/hooks/index.ts b/src/api/hooks/index.ts
similarity index 100%
rename from app/soapbox/api/hooks/index.ts
rename to src/api/hooks/index.ts
diff --git a/app/soapbox/api/hooks/nostr/useSignerStream.ts b/src/api/hooks/nostr/useSignerStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/nostr/useSignerStream.ts
rename to src/api/hooks/nostr/useSignerStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useCommunityStream.ts b/src/api/hooks/streaming/useCommunityStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useCommunityStream.ts
rename to src/api/hooks/streaming/useCommunityStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useDirectStream.ts b/src/api/hooks/streaming/useDirectStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useDirectStream.ts
rename to src/api/hooks/streaming/useDirectStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useGroupStream.ts b/src/api/hooks/streaming/useGroupStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useGroupStream.ts
rename to src/api/hooks/streaming/useGroupStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useHashtagStream.ts b/src/api/hooks/streaming/useHashtagStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useHashtagStream.ts
rename to src/api/hooks/streaming/useHashtagStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useListStream.ts b/src/api/hooks/streaming/useListStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useListStream.ts
rename to src/api/hooks/streaming/useListStream.ts
diff --git a/app/soapbox/api/hooks/streaming/usePublicStream.ts b/src/api/hooks/streaming/usePublicStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/usePublicStream.ts
rename to src/api/hooks/streaming/usePublicStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useRemoteStream.ts b/src/api/hooks/streaming/useRemoteStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useRemoteStream.ts
rename to src/api/hooks/streaming/useRemoteStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useTimelineStream.ts b/src/api/hooks/streaming/useTimelineStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useTimelineStream.ts
rename to src/api/hooks/streaming/useTimelineStream.ts
diff --git a/app/soapbox/api/hooks/streaming/useUserStream.ts b/src/api/hooks/streaming/useUserStream.ts
similarity index 100%
rename from app/soapbox/api/hooks/streaming/useUserStream.ts
rename to src/api/hooks/streaming/useUserStream.ts
diff --git a/app/soapbox/api/index.ts b/src/api/index.ts
similarity index 99%
rename from app/soapbox/api/index.ts
rename to src/api/index.ts
index 09587e443..f71676145 100644
--- a/app/soapbox/api/index.ts
+++ b/src/api/index.ts
@@ -3,7 +3,6 @@
* @see {@link https://github.com/axios/axios}
* @module soapbox/api
*/
-'use strict';
import axios, { AxiosInstance, AxiosResponse } from 'axios';
import LinkHeader from 'http-link-header';
diff --git a/src/assets/icons/COPYING.md b/src/assets/icons/COPYING.md
new file mode 100644
index 000000000..811c33b12
--- /dev/null
+++ b/src/assets/icons/COPYING.md
@@ -0,0 +1,3 @@
+# Custom icons
+
+- verified.svg - Created by Alex Gleason. CC0
diff --git a/app/assets/icons/verified.svg b/src/assets/icons/verified.svg
similarity index 100%
rename from app/assets/icons/verified.svg
rename to src/assets/icons/verified.svg
diff --git a/app/assets/images/audio-placeholder.png b/src/assets/images/audio-placeholder.png
similarity index 100%
rename from app/assets/images/audio-placeholder.png
rename to src/assets/images/audio-placeholder.png
diff --git a/app/assets/images/avatar-missing.png b/src/assets/images/avatar-missing.png
similarity index 100%
rename from app/assets/images/avatar-missing.png
rename to src/assets/images/avatar-missing.png
diff --git a/app/assets/images/avatar-missing.svg b/src/assets/images/avatar-missing.svg
similarity index 100%
rename from app/assets/images/avatar-missing.svg
rename to src/assets/images/avatar-missing.svg
diff --git a/app/assets/images/header-missing.png b/src/assets/images/header-missing.png
similarity index 100%
rename from app/assets/images/header-missing.png
rename to src/assets/images/header-missing.png
diff --git a/app/assets/images/soapbox-logo-white.svg b/src/assets/images/soapbox-logo-white.svg
similarity index 100%
rename from app/assets/images/soapbox-logo-white.svg
rename to src/assets/images/soapbox-logo-white.svg
diff --git a/app/assets/images/soapbox-logo.svg b/src/assets/images/soapbox-logo.svg
similarity index 100%
rename from app/assets/images/soapbox-logo.svg
rename to src/assets/images/soapbox-logo.svg
diff --git a/app/assets/images/video-placeholder.png b/src/assets/images/video-placeholder.png
similarity index 100%
rename from app/assets/images/video-placeholder.png
rename to src/assets/images/video-placeholder.png
diff --git a/app/assets/images/void.png b/src/assets/images/void.png
similarity index 100%
rename from app/assets/images/void.png
rename to src/assets/images/void.png
diff --git a/app/assets/images/web-push/web-push-icon_expand.png b/src/assets/images/web-push/web-push-icon_expand.png
similarity index 100%
rename from app/assets/images/web-push/web-push-icon_expand.png
rename to src/assets/images/web-push/web-push-icon_expand.png
diff --git a/app/assets/images/web-push/web-push-icon_favourite.png b/src/assets/images/web-push/web-push-icon_favourite.png
similarity index 100%
rename from app/assets/images/web-push/web-push-icon_favourite.png
rename to src/assets/images/web-push/web-push-icon_favourite.png
diff --git a/app/assets/images/web-push/web-push-icon_reblog.png b/src/assets/images/web-push/web-push-icon_reblog.png
similarity index 100%
rename from app/assets/images/web-push/web-push-icon_reblog.png
rename to src/assets/images/web-push/web-push-icon_reblog.png
diff --git a/app/assets/sounds/LICENSE.md b/src/assets/sounds/LICENSE.md
similarity index 100%
rename from app/assets/sounds/LICENSE.md
rename to src/assets/sounds/LICENSE.md
diff --git a/app/assets/sounds/boop.mp3 b/src/assets/sounds/boop.mp3
similarity index 100%
rename from app/assets/sounds/boop.mp3
rename to src/assets/sounds/boop.mp3
diff --git a/app/assets/sounds/boop.ogg b/src/assets/sounds/boop.ogg
similarity index 100%
rename from app/assets/sounds/boop.ogg
rename to src/assets/sounds/boop.ogg
diff --git a/app/assets/sounds/chat.mp3 b/src/assets/sounds/chat.mp3
similarity index 100%
rename from app/assets/sounds/chat.mp3
rename to src/assets/sounds/chat.mp3
diff --git a/app/assets/sounds/chat.oga b/src/assets/sounds/chat.oga
similarity index 100%
rename from app/assets/sounds/chat.oga
rename to src/assets/sounds/chat.oga
diff --git a/app/soapbox/build-config-compiletime.ts b/src/build-config-compiletime.ts
similarity index 84%
rename from app/soapbox/build-config-compiletime.ts
rename to src/build-config-compiletime.ts
index 38d4b5bbc..15915cbdb 100644
--- a/app/soapbox/build-config-compiletime.ts
+++ b/src/build-config-compiletime.ts
@@ -12,7 +12,6 @@ const {
NODE_ENV,
BACKEND_URL,
FE_SUBDIRECTORY,
- FE_BUILD_DIR,
FE_INSTANCE_SOURCE_DIR,
SENTRY_DSN,
} = process.env;
@@ -29,16 +28,11 @@ const sanitizeBasename = (path: string | undefined = ''): string => {
return `/${trim(path, '/')}`;
};
-const sanitizePath = (path: string | undefined = ''): string => {
- return trim(path, '/');
-};
-
export default () => ({
data: {
NODE_ENV: NODE_ENV || 'development',
BACKEND_URL: sanitizeURL(BACKEND_URL),
FE_SUBDIRECTORY: sanitizeBasename(FE_SUBDIRECTORY),
- FE_BUILD_DIR: sanitizePath(FE_BUILD_DIR) || 'static',
FE_INSTANCE_SOURCE_DIR: FE_INSTANCE_SOURCE_DIR || 'instance',
SENTRY_DSN,
},
diff --git a/app/soapbox/build-config.ts b/src/build-config.ts
similarity index 88%
rename from app/soapbox/build-config.ts
rename to src/build-config.ts
index e3e5436bf..38515cdd3 100644
--- a/app/soapbox/build-config.ts
+++ b/src/build-config.ts
@@ -3,7 +3,6 @@ const {
NODE_ENV,
BACKEND_URL,
FE_SUBDIRECTORY,
- FE_BUILD_DIR,
FE_INSTANCE_SOURCE_DIR,
SENTRY_DSN,
} = import.meta.compileTime('./build-config-compiletime.ts');
@@ -12,7 +11,6 @@ export {
NODE_ENV,
BACKEND_URL,
FE_SUBDIRECTORY,
- FE_BUILD_DIR,
FE_INSTANCE_SOURCE_DIR,
SENTRY_DSN,
};
\ No newline at end of file
diff --git a/app/soapbox/components/__mocks__/react-inlinesvg.tsx b/src/components/__mocks__/react-inlinesvg.tsx
similarity index 100%
rename from app/soapbox/components/__mocks__/react-inlinesvg.tsx
rename to src/components/__mocks__/react-inlinesvg.tsx
diff --git a/app/soapbox/components/__tests__/account.test.tsx b/src/components/__tests__/account.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/account.test.tsx
rename to src/components/__tests__/account.test.tsx
diff --git a/app/soapbox/components/__tests__/autosuggest-emoji.test.tsx b/src/components/__tests__/autosuggest-emoji.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/autosuggest-emoji.test.tsx
rename to src/components/__tests__/autosuggest-emoji.test.tsx
diff --git a/app/soapbox/components/__tests__/badge.test.tsx b/src/components/__tests__/badge.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/badge.test.tsx
rename to src/components/__tests__/badge.test.tsx
diff --git a/app/soapbox/components/__tests__/display-name.test.tsx b/src/components/__tests__/display-name.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/display-name.test.tsx
rename to src/components/__tests__/display-name.test.tsx
diff --git a/app/soapbox/components/__tests__/quoted-status.test.tsx b/src/components/__tests__/quoted-status.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/quoted-status.test.tsx
rename to src/components/__tests__/quoted-status.test.tsx
diff --git a/app/soapbox/components/__tests__/scroll-top-button.test.tsx b/src/components/__tests__/scroll-top-button.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/scroll-top-button.test.tsx
rename to src/components/__tests__/scroll-top-button.test.tsx
diff --git a/app/soapbox/components/__tests__/status.test.tsx b/src/components/__tests__/status.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/status.test.tsx
rename to src/components/__tests__/status.test.tsx
diff --git a/app/soapbox/components/__tests__/validation-checkmark.test.tsx b/src/components/__tests__/validation-checkmark.test.tsx
similarity index 100%
rename from app/soapbox/components/__tests__/validation-checkmark.test.tsx
rename to src/components/__tests__/validation-checkmark.test.tsx
diff --git a/app/soapbox/components/account-search.tsx b/src/components/account-search.tsx
similarity index 100%
rename from app/soapbox/components/account-search.tsx
rename to src/components/account-search.tsx
diff --git a/app/soapbox/components/account.tsx b/src/components/account.tsx
similarity index 95%
rename from app/soapbox/components/account.tsx
rename to src/components/account.tsx
index 9536ef6ed..27823c0f7 100644
--- a/app/soapbox/components/account.tsx
+++ b/src/components/account.tsx
@@ -179,6 +179,11 @@ const Account = ({
if (withDate) timestamp = account.created_at;
const LinkEl: any = withLinkToProfile ? Link : 'div';
+ const linkProps = withLinkToProfile ? {
+ to: `/@${account.acct}`,
+ title: account.acct,
+ onClick: (event: React.MouseEvent) => event.stopPropagation(),
+ } : {};
return (
@@ -188,12 +193,7 @@ const Account = ({
condition={showProfileHoverCard}
wrapper={(children) =>
{children} }
>
-
event.stopPropagation()}
- >
+
{emoji && (
{children} }
>
- event.stopPropagation()}
- >
+
= ({ title, subtitle, children }) => {
+ return (
+
+
+
+
+ {title}
+ {subtitle && {subtitle} }
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+};
+
+export { BigCard };
\ No newline at end of file
diff --git a/app/soapbox/components/birthday-input.tsx b/src/components/birthday-input.tsx
similarity index 100%
rename from app/soapbox/components/birthday-input.tsx
rename to src/components/birthday-input.tsx
diff --git a/app/soapbox/components/birthday-panel.tsx b/src/components/birthday-panel.tsx
similarity index 100%
rename from app/soapbox/components/birthday-panel.tsx
rename to src/components/birthday-panel.tsx
diff --git a/app/soapbox/components/blurhash.tsx b/src/components/blurhash.tsx
similarity index 100%
rename from app/soapbox/components/blurhash.tsx
rename to src/components/blurhash.tsx
diff --git a/app/soapbox/components/copyable-input.tsx b/src/components/copyable-input.tsx
similarity index 100%
rename from app/soapbox/components/copyable-input.tsx
rename to src/components/copyable-input.tsx
diff --git a/app/soapbox/components/display-name.tsx b/src/components/display-name.tsx
similarity index 100%
rename from app/soapbox/components/display-name.tsx
rename to src/components/display-name.tsx
diff --git a/app/soapbox/components/domain.tsx b/src/components/domain.tsx
similarity index 100%
rename from app/soapbox/components/domain.tsx
rename to src/components/domain.tsx
diff --git a/app/soapbox/components/dropdown-menu/dropdown-menu-item.tsx b/src/components/dropdown-menu/dropdown-menu-item.tsx
similarity index 100%
rename from app/soapbox/components/dropdown-menu/dropdown-menu-item.tsx
rename to src/components/dropdown-menu/dropdown-menu-item.tsx
diff --git a/app/soapbox/components/dropdown-menu/dropdown-menu.tsx b/src/components/dropdown-menu/dropdown-menu.tsx
similarity index 100%
rename from app/soapbox/components/dropdown-menu/dropdown-menu.tsx
rename to src/components/dropdown-menu/dropdown-menu.tsx
diff --git a/app/soapbox/components/dropdown-menu/index.ts b/src/components/dropdown-menu/index.ts
similarity index 100%
rename from app/soapbox/components/dropdown-menu/index.ts
rename to src/components/dropdown-menu/index.ts
diff --git a/app/soapbox/components/error-boundary.tsx b/src/components/error-boundary.tsx
similarity index 100%
rename from app/soapbox/components/error-boundary.tsx
rename to src/components/error-boundary.tsx
diff --git a/app/soapbox/components/event-preview.tsx b/src/components/event-preview.tsx
similarity index 100%
rename from app/soapbox/components/event-preview.tsx
rename to src/components/event-preview.tsx
diff --git a/app/soapbox/components/extended-video-player.tsx b/src/components/extended-video-player.tsx
similarity index 100%
rename from app/soapbox/components/extended-video-player.tsx
rename to src/components/extended-video-player.tsx
diff --git a/app/soapbox/components/fork-awesome-icon.tsx b/src/components/fork-awesome-icon.tsx
similarity index 100%
rename from app/soapbox/components/fork-awesome-icon.tsx
rename to src/components/fork-awesome-icon.tsx
diff --git a/app/soapbox/components/gdpr-banner.tsx b/src/components/gdpr-banner.tsx
similarity index 100%
rename from app/soapbox/components/gdpr-banner.tsx
rename to src/components/gdpr-banner.tsx
diff --git a/app/soapbox/components/group-card.tsx b/src/components/group-card.tsx
similarity index 100%
rename from app/soapbox/components/group-card.tsx
rename to src/components/group-card.tsx
diff --git a/app/soapbox/components/groups/group-avatar.tsx b/src/components/groups/group-avatar.tsx
similarity index 100%
rename from app/soapbox/components/groups/group-avatar.tsx
rename to src/components/groups/group-avatar.tsx
diff --git a/app/soapbox/components/groups/popover/group-popover.tsx b/src/components/groups/popover/group-popover.tsx
similarity index 100%
rename from app/soapbox/components/groups/popover/group-popover.tsx
rename to src/components/groups/popover/group-popover.tsx
diff --git a/app/soapbox/components/hashtag.tsx b/src/components/hashtag.tsx
similarity index 100%
rename from app/soapbox/components/hashtag.tsx
rename to src/components/hashtag.tsx
diff --git a/app/soapbox/components/helmet.tsx b/src/components/helmet.tsx
similarity index 100%
rename from app/soapbox/components/helmet.tsx
rename to src/components/helmet.tsx
diff --git a/app/soapbox/components/hoc/group-lookup-hoc.tsx b/src/components/hoc/group-lookup-hoc.tsx
similarity index 100%
rename from app/soapbox/components/hoc/group-lookup-hoc.tsx
rename to src/components/hoc/group-lookup-hoc.tsx
diff --git a/app/soapbox/components/hoc/with-hoc.tsx b/src/components/hoc/with-hoc.tsx
similarity index 100%
rename from app/soapbox/components/hoc/with-hoc.tsx
rename to src/components/hoc/with-hoc.tsx
diff --git a/app/soapbox/components/hover-ref-wrapper.tsx b/src/components/hover-ref-wrapper.tsx
similarity index 100%
rename from app/soapbox/components/hover-ref-wrapper.tsx
rename to src/components/hover-ref-wrapper.tsx
diff --git a/app/soapbox/components/hover-status-wrapper.tsx b/src/components/hover-status-wrapper.tsx
similarity index 100%
rename from app/soapbox/components/hover-status-wrapper.tsx
rename to src/components/hover-status-wrapper.tsx
diff --git a/app/soapbox/components/icon-button.tsx b/src/components/icon-button.tsx
similarity index 100%
rename from app/soapbox/components/icon-button.tsx
rename to src/components/icon-button.tsx
diff --git a/app/soapbox/components/icon-with-counter.tsx b/src/components/icon-with-counter.tsx
similarity index 100%
rename from app/soapbox/components/icon-with-counter.tsx
rename to src/components/icon-with-counter.tsx
diff --git a/app/soapbox/components/icon.tsx b/src/components/icon.tsx
similarity index 100%
rename from app/soapbox/components/icon.tsx
rename to src/components/icon.tsx
diff --git a/app/soapbox/components/landing-gradient.tsx b/src/components/landing-gradient.tsx
similarity index 100%
rename from app/soapbox/components/landing-gradient.tsx
rename to src/components/landing-gradient.tsx
diff --git a/app/soapbox/components/link.tsx b/src/components/link.tsx
similarity index 100%
rename from app/soapbox/components/link.tsx
rename to src/components/link.tsx
diff --git a/app/soapbox/components/list.tsx b/src/components/list.tsx
similarity index 100%
rename from app/soapbox/components/list.tsx
rename to src/components/list.tsx
diff --git a/app/soapbox/components/load-gap.tsx b/src/components/load-gap.tsx
similarity index 100%
rename from app/soapbox/components/load-gap.tsx
rename to src/components/load-gap.tsx
diff --git a/app/soapbox/components/load-more.tsx b/src/components/load-more.tsx
similarity index 100%
rename from app/soapbox/components/load-more.tsx
rename to src/components/load-more.tsx
diff --git a/app/soapbox/components/loading-screen.tsx b/src/components/loading-screen.tsx
similarity index 100%
rename from app/soapbox/components/loading-screen.tsx
rename to src/components/loading-screen.tsx
diff --git a/app/soapbox/components/location-search.tsx b/src/components/location-search.tsx
similarity index 100%
rename from app/soapbox/components/location-search.tsx
rename to src/components/location-search.tsx
diff --git a/app/soapbox/components/markup.css b/src/components/markup.css
similarity index 82%
rename from app/soapbox/components/markup.css
rename to src/components/markup.css
index 48e292bcc..185493d72 100644
--- a/app/soapbox/components/markup.css
+++ b/src/components/markup.css
@@ -2,6 +2,18 @@
@apply whitespace-pre-wrap;
}
+[data-markup] h1 {
+ @apply text-3xl font-semibold;
+}
+
+[data-markup] h2 {
+ @apply text-2xl font-semibold;
+}
+
+[data-markup] h3 {
+ @apply text-xl font-black;
+}
+
[data-markup] p {
@apply mb-4 whitespace-pre-wrap;
}
@@ -39,6 +51,18 @@
@apply py-1 pl-4 mb-4 border-l-4 border-solid border-gray-400 text-gray-500 dark:text-gray-400;
}
+[data-markup] table {
+ @apply table-auto w-full bg-gray-200 dark:bg-gray-900 my-4 rounded-md;
+}
+
+[data-markup] table th, table td {
+ @apply text-center px-2;
+}
+
+[data-markup] table th {
+ @apply border-b-2 border-gray-600;
+}
+
[data-markup] code,
[data-markup] pre {
@apply cursor-text font-mono;
diff --git a/app/soapbox/components/markup.tsx b/src/components/markup.tsx
similarity index 100%
rename from app/soapbox/components/markup.tsx
rename to src/components/markup.tsx
diff --git a/app/soapbox/components/media-gallery.tsx b/src/components/media-gallery.tsx
similarity index 100%
rename from app/soapbox/components/media-gallery.tsx
rename to src/components/media-gallery.tsx
diff --git a/app/soapbox/components/missing-indicator.tsx b/src/components/missing-indicator.tsx
similarity index 100%
rename from app/soapbox/components/missing-indicator.tsx
rename to src/components/missing-indicator.tsx
diff --git a/app/soapbox/components/modal-root.tsx b/src/components/modal-root.tsx
similarity index 100%
rename from app/soapbox/components/modal-root.tsx
rename to src/components/modal-root.tsx
diff --git a/src/components/navlinks.tsx b/src/components/navlinks.tsx
new file mode 100644
index 000000000..4e0804326
--- /dev/null
+++ b/src/components/navlinks.tsx
@@ -0,0 +1,44 @@
+import React from 'react';
+import { Link } from 'react-router-dom';
+
+import { Text } from 'soapbox/components/ui';
+import { useSettings, useSoapboxConfig } from 'soapbox/hooks';
+
+interface INavlinks {
+ type: string
+}
+
+const Navlinks: React.FC = ({ type }) => {
+ const settings = useSettings();
+ const { copyright, navlinks } = useSoapboxConfig();
+ const locale = settings.get('locale') as string;
+
+ return (
+
+
+ {navlinks.get(type)?.map((link, idx) => {
+ const url = link.url;
+ const isExternal = url.startsWith('http');
+ const Comp = (isExternal ? 'a' : Link) as 'a';
+ const compProps = isExternal ? { href: url, target: '_blank' } : { to: url };
+
+ return (
+
+
+
+ {(link.getIn(['titleLocales', locale]) || link.get('title')) as string}
+
+
+
+ );
+ })}
+
+
+
+ {copyright}
+
+
+ );
+};
+
+export { Navlinks };
diff --git a/app/soapbox/components/outline-box.tsx b/src/components/outline-box.tsx
similarity index 100%
rename from app/soapbox/components/outline-box.tsx
rename to src/components/outline-box.tsx
diff --git a/app/soapbox/components/pending-items-row.tsx b/src/components/pending-items-row.tsx
similarity index 100%
rename from app/soapbox/components/pending-items-row.tsx
rename to src/components/pending-items-row.tsx
diff --git a/app/soapbox/components/polls/__tests__/poll-footer.test.tsx b/src/components/polls/__tests__/poll-footer.test.tsx
similarity index 100%
rename from app/soapbox/components/polls/__tests__/poll-footer.test.tsx
rename to src/components/polls/__tests__/poll-footer.test.tsx
diff --git a/app/soapbox/components/polls/poll-footer.tsx b/src/components/polls/poll-footer.tsx
similarity index 100%
rename from app/soapbox/components/polls/poll-footer.tsx
rename to src/components/polls/poll-footer.tsx
diff --git a/app/soapbox/components/polls/poll-option.tsx b/src/components/polls/poll-option.tsx
similarity index 100%
rename from app/soapbox/components/polls/poll-option.tsx
rename to src/components/polls/poll-option.tsx
diff --git a/app/soapbox/components/polls/poll.tsx b/src/components/polls/poll.tsx
similarity index 100%
rename from app/soapbox/components/polls/poll.tsx
rename to src/components/polls/poll.tsx
diff --git a/app/soapbox/components/profile-hover-card.tsx b/src/components/profile-hover-card.tsx
similarity index 100%
rename from app/soapbox/components/profile-hover-card.tsx
rename to src/components/profile-hover-card.tsx
diff --git a/app/soapbox/components/progress-circle.tsx b/src/components/progress-circle.tsx
similarity index 100%
rename from app/soapbox/components/progress-circle.tsx
rename to src/components/progress-circle.tsx
diff --git a/app/soapbox/components/pull-to-refresh.tsx b/src/components/pull-to-refresh.tsx
similarity index 100%
rename from app/soapbox/components/pull-to-refresh.tsx
rename to src/components/pull-to-refresh.tsx
diff --git a/app/soapbox/components/pullable.tsx b/src/components/pullable.tsx
similarity index 100%
rename from app/soapbox/components/pullable.tsx
rename to src/components/pullable.tsx
diff --git a/app/soapbox/components/quoted-status.tsx b/src/components/quoted-status.tsx
similarity index 100%
rename from app/soapbox/components/quoted-status.tsx
rename to src/components/quoted-status.tsx
diff --git a/app/soapbox/components/radio.tsx b/src/components/radio.tsx
similarity index 100%
rename from app/soapbox/components/radio.tsx
rename to src/components/radio.tsx
diff --git a/app/soapbox/components/relative-timestamp.tsx b/src/components/relative-timestamp.tsx
similarity index 100%
rename from app/soapbox/components/relative-timestamp.tsx
rename to src/components/relative-timestamp.tsx
diff --git a/app/soapbox/components/safe-embed.tsx b/src/components/safe-embed.tsx
similarity index 100%
rename from app/soapbox/components/safe-embed.tsx
rename to src/components/safe-embed.tsx
diff --git a/app/soapbox/components/scroll-top-button.tsx b/src/components/scroll-top-button.tsx
similarity index 100%
rename from app/soapbox/components/scroll-top-button.tsx
rename to src/components/scroll-top-button.tsx
diff --git a/app/soapbox/components/scrollable-list.tsx b/src/components/scrollable-list.tsx
similarity index 100%
rename from app/soapbox/components/scrollable-list.tsx
rename to src/components/scrollable-list.tsx
diff --git a/app/soapbox/components/sidebar-menu.tsx b/src/components/sidebar-menu.tsx
similarity index 99%
rename from app/soapbox/components/sidebar-menu.tsx
rename to src/components/sidebar-menu.tsx
index 11786f4ad..819411133 100644
--- a/app/soapbox/components/sidebar-menu.tsx
+++ b/src/components/sidebar-menu.tsx
@@ -9,13 +9,11 @@ import { getSettings } from 'soapbox/actions/settings';
import { closeSidebar } from 'soapbox/actions/sidebar';
import { useAccount } from 'soapbox/api/hooks';
import Account from 'soapbox/components/account';
-import { Stack } from 'soapbox/components/ui';
+import { Stack, Divider, HStack, Icon, IconButton, Text } from 'soapbox/components/ui';
import ProfileStats from 'soapbox/features/ui/components/profile-stats';
import { useAppDispatch, useAppSelector, useGroupsPath, useFeatures } from 'soapbox/hooks';
import { makeGetOtherAccounts } from 'soapbox/selectors';
-import { Divider, HStack, Icon, IconButton, Text } from './ui';
-
import type { List as ImmutableList } from 'immutable';
import type { Account as AccountEntity } from 'soapbox/types/entities';
diff --git a/app/soapbox/components/sidebar-navigation-link.tsx b/src/components/sidebar-navigation-link.tsx
similarity index 100%
rename from app/soapbox/components/sidebar-navigation-link.tsx
rename to src/components/sidebar-navigation-link.tsx
diff --git a/app/soapbox/components/sidebar-navigation.tsx b/src/components/sidebar-navigation.tsx
similarity index 100%
rename from app/soapbox/components/sidebar-navigation.tsx
rename to src/components/sidebar-navigation.tsx
diff --git a/app/soapbox/components/site-logo.tsx b/src/components/site-logo.tsx
similarity index 91%
rename from app/soapbox/components/site-logo.tsx
rename to src/components/site-logo.tsx
index eb7f414b0..9d545a48d 100644
--- a/app/soapbox/components/site-logo.tsx
+++ b/src/components/site-logo.tsx
@@ -20,8 +20,8 @@ const SiteLogo: React.FC = ({ className, theme, ...rest }) => {
/** Soapbox logo. */
const soapboxLogo = darkMode
- ? require('assets/images/soapbox-logo-white.svg')
- : require('assets/images/soapbox-logo.svg');
+ ? require('soapbox/assets/images/soapbox-logo-white.svg')
+ : require('soapbox/assets/images/soapbox-logo.svg');
// Use the right logo if provided, then use fallbacks.
const getSrc = () => {
diff --git a/app/soapbox/components/status-action-bar.tsx b/src/components/status-action-bar.tsx
similarity index 100%
rename from app/soapbox/components/status-action-bar.tsx
rename to src/components/status-action-bar.tsx
diff --git a/app/soapbox/components/status-action-button.tsx b/src/components/status-action-button.tsx
similarity index 100%
rename from app/soapbox/components/status-action-button.tsx
rename to src/components/status-action-button.tsx
diff --git a/app/soapbox/components/status-content.tsx b/src/components/status-content.tsx
similarity index 100%
rename from app/soapbox/components/status-content.tsx
rename to src/components/status-content.tsx
diff --git a/app/soapbox/components/status-hover-card.tsx b/src/components/status-hover-card.tsx
similarity index 100%
rename from app/soapbox/components/status-hover-card.tsx
rename to src/components/status-hover-card.tsx
diff --git a/app/soapbox/components/status-list.tsx b/src/components/status-list.tsx
similarity index 89%
rename from app/soapbox/components/status-list.tsx
rename to src/components/status-list.tsx
index 1d4165d22..a2507df6a 100644
--- a/app/soapbox/components/status-list.tsx
+++ b/src/components/status-list.tsx
@@ -1,25 +1,19 @@
import clsx from 'clsx';
-import { Map as ImmutableMap } from 'immutable';
import debounce from 'lodash/debounce';
import React, { useRef, useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
-import { v4 as uuidv4 } from 'uuid';
import LoadGap from 'soapbox/components/load-gap';
import ScrollableList from 'soapbox/components/scrollable-list';
import StatusContainer from 'soapbox/containers/status-container';
-import Ad from 'soapbox/features/ads/components/ad';
import FeedSuggestions from 'soapbox/features/feed-suggestions/feed-suggestions';
import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder-status';
-import { ALGORITHMS } from 'soapbox/features/timeline-insertion';
import PendingStatus from 'soapbox/features/ui/components/pending-status';
import { useSoapboxConfig } from 'soapbox/hooks';
-import useAds from 'soapbox/queries/ads';
import type { OrderedSet as ImmutableOrderedSet } from 'immutable';
import type { VirtuosoHandle } from 'react-virtuoso';
import type { IScrollableList } from 'soapbox/components/scrollable-list';
-import type { Ad as AdEntity } from 'soapbox/types/soapbox';
interface IStatusList extends Omit {
/** Unique key to preserve the scroll position when navigating back. */
@@ -64,14 +58,8 @@ const StatusList: React.FC = ({
showGroup = true,
...other
}) => {
- const { data: ads } = useAds();
const soapboxConfig = useSoapboxConfig();
-
- const adsAlgorithm = String(soapboxConfig.extensions.getIn(['ads', 'algorithm', 0]));
- const adsOpts = (soapboxConfig.extensions.getIn(['ads', 'algorithm', 1], ImmutableMap()) as ImmutableMap).toJS();
-
const node = useRef(null);
- const seed = useRef(uuidv4());
const getFeaturedStatusCount = () => {
return featuredStatusIds?.size || 0;
@@ -144,12 +132,6 @@ const StatusList: React.FC = ({
);
};
- const renderAd = (ad: AdEntity, index: number) => {
- return (
-
- );
- };
-
const renderPendingStatus = (statusId: string) => {
const idempotencyKey = statusId.replace(/^末pending-/, '');
@@ -192,14 +174,6 @@ const StatusList: React.FC = ({
const renderStatuses = (): React.ReactNode[] => {
if (isLoading || statusIds.size > 0) {
return statusIds.toList().reduce((acc, statusId, index) => {
- if (showAds && ads) {
- const ad = ALGORITHMS[adsAlgorithm]?.(ads, index, { ...adsOpts, seed: seed.current });
-
- if (ad) {
- acc.push(renderAd(ad, index));
- }
- }
-
if (statusId === null) {
const gap = renderLoadGap(index);
// one does not simply push a null item to Virtuoso: https://github.com/petyosi/react-virtuoso/issues/206#issuecomment-747363793
diff --git a/app/soapbox/components/status-media.tsx b/src/components/status-media.tsx
similarity index 70%
rename from app/soapbox/components/status-media.tsx
rename to src/components/status-media.tsx
index 192a4c169..99329f297 100644
--- a/app/soapbox/components/status-media.tsx
+++ b/src/components/status-media.tsx
@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React from 'react';
import { openModal } from 'soapbox/actions/modals';
import AttachmentThumbs from 'soapbox/components/attachment-thumbs';
@@ -7,8 +7,7 @@ import PlaceholderCard from 'soapbox/features/placeholder/components/placeholder
import Card from 'soapbox/features/status/components/card';
import Bundle from 'soapbox/features/ui/components/bundle';
import { MediaGallery, Video, Audio } from 'soapbox/features/ui/util/async-components';
-import { useAppDispatch, useSettings } from 'soapbox/hooks';
-import { addAutoPlay } from 'soapbox/utils/media';
+import { useAppDispatch } from 'soapbox/hooks';
import type { List as ImmutableList } from 'immutable';
import type VideoType from 'soapbox/features/video';
@@ -36,22 +35,12 @@ const StatusMedia: React.FC = ({
onToggleVisibility = () => { },
}) => {
const dispatch = useAppDispatch();
- const settings = useSettings();
- const shouldAutoPlayVideo = settings.get('autoPlayVideo');
-
- const [mediaWrapperWidth, setMediaWrapperWidth] = useState(undefined);
const size = status.media_attachments.size;
const firstAttachment = status.media_attachments.first();
let media: JSX.Element | null = null;
- const setRef = (c: HTMLDivElement): void => {
- if (c) {
- setMediaWrapperWidth(c.offsetWidth);
- }
- };
-
const renderLoadingMediaGallery = (): JSX.Element => {
return
;
};
@@ -80,45 +69,22 @@ const StatusMedia: React.FC = ({
} else if (size === 1 && firstAttachment.type === 'video') {
const video = firstAttachment;
- if (video.external_video_id && status.card) {
- const getHeight = (): number => {
- const width = Number(video.meta.getIn(['original', 'width']));
- const height = Number(video.meta.getIn(['original', 'height']));
- return Number(mediaWrapperWidth) / (width / height);
- };
-
- const height = getHeight();
-
- media = (
-
-
+ {(Component: typeof VideoType) => (
+
-
- );
- } else {
- media = (
-
- {(Component: typeof VideoType) => (
-
- )}
-
- );
- }
+ )}
+
+ );
} else if (size === 1 && firstAttachment.type === 'audio') {
const attachment = firstAttachment;
diff --git a/app/soapbox/components/status-reaction-wrapper.tsx b/src/components/status-reaction-wrapper.tsx
similarity index 100%
rename from app/soapbox/components/status-reaction-wrapper.tsx
rename to src/components/status-reaction-wrapper.tsx
diff --git a/app/soapbox/components/status-reply-mentions.tsx b/src/components/status-reply-mentions.tsx
similarity index 100%
rename from app/soapbox/components/status-reply-mentions.tsx
rename to src/components/status-reply-mentions.tsx
diff --git a/app/soapbox/components/status.tsx b/src/components/status.tsx
similarity index 100%
rename from app/soapbox/components/status.tsx
rename to src/components/status.tsx
diff --git a/app/soapbox/components/statuses/__tests__/sensitive-content-overlay.test.tsx b/src/components/statuses/__tests__/sensitive-content-overlay.test.tsx
similarity index 100%
rename from app/soapbox/components/statuses/__tests__/sensitive-content-overlay.test.tsx
rename to src/components/statuses/__tests__/sensitive-content-overlay.test.tsx
diff --git a/app/soapbox/components/statuses/sensitive-content-overlay.tsx b/src/components/statuses/sensitive-content-overlay.tsx
similarity index 100%
rename from app/soapbox/components/statuses/sensitive-content-overlay.tsx
rename to src/components/statuses/sensitive-content-overlay.tsx
diff --git a/app/soapbox/components/statuses/status-info.tsx b/src/components/statuses/status-info.tsx
similarity index 100%
rename from app/soapbox/components/statuses/status-info.tsx
rename to src/components/statuses/status-info.tsx
diff --git a/app/soapbox/components/still-image.tsx b/src/components/still-image.tsx
similarity index 100%
rename from app/soapbox/components/still-image.tsx
rename to src/components/still-image.tsx
diff --git a/app/soapbox/components/thumb-navigation-link.tsx b/src/components/thumb-navigation-link.tsx
similarity index 100%
rename from app/soapbox/components/thumb-navigation-link.tsx
rename to src/components/thumb-navigation-link.tsx
diff --git a/app/soapbox/components/thumb-navigation.tsx b/src/components/thumb-navigation.tsx
similarity index 100%
rename from app/soapbox/components/thumb-navigation.tsx
rename to src/components/thumb-navigation.tsx
diff --git a/app/soapbox/components/tombstone.tsx b/src/components/tombstone.tsx
similarity index 100%
rename from app/soapbox/components/tombstone.tsx
rename to src/components/tombstone.tsx
diff --git a/app/soapbox/components/translate-button.tsx b/src/components/translate-button.tsx
similarity index 100%
rename from app/soapbox/components/translate-button.tsx
rename to src/components/translate-button.tsx
diff --git a/app/soapbox/components/ui/accordion/accordion.tsx b/src/components/ui/accordion/accordion.tsx
similarity index 100%
rename from app/soapbox/components/ui/accordion/accordion.tsx
rename to src/components/ui/accordion/accordion.tsx
diff --git a/app/soapbox/components/ui/avatar/__tests__/avatar.test.tsx b/src/components/ui/avatar/__tests__/avatar.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/avatar/__tests__/avatar.test.tsx
rename to src/components/ui/avatar/__tests__/avatar.test.tsx
diff --git a/app/soapbox/components/ui/avatar/avatar.tsx b/src/components/ui/avatar/avatar.tsx
similarity index 100%
rename from app/soapbox/components/ui/avatar/avatar.tsx
rename to src/components/ui/avatar/avatar.tsx
diff --git a/app/soapbox/components/ui/banner/banner.tsx b/src/components/ui/banner/banner.tsx
similarity index 100%
rename from app/soapbox/components/ui/banner/banner.tsx
rename to src/components/ui/banner/banner.tsx
diff --git a/app/soapbox/components/ui/button/__tests__/button.test.tsx b/src/components/ui/button/__tests__/button.test.tsx
similarity index 97%
rename from app/soapbox/components/ui/button/__tests__/button.test.tsx
rename to src/components/ui/button/__tests__/button.test.tsx
index 8d1f65ec9..f9c59c68a 100644
--- a/app/soapbox/components/ui/button/__tests__/button.test.tsx
+++ b/src/components/ui/button/__tests__/button.test.tsx
@@ -27,7 +27,7 @@ describe('
', () => {
});
it('handles click events using the given handler', () => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
fireEvent.click(screen.getByRole('button'));
@@ -35,7 +35,7 @@ describe('
', () => {
});
it('does not handle click events if props.disabled given', () => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
fireEvent.click(screen.getByRole('button'));
diff --git a/app/soapbox/components/ui/button/button.tsx b/src/components/ui/button/button.tsx
similarity index 100%
rename from app/soapbox/components/ui/button/button.tsx
rename to src/components/ui/button/button.tsx
diff --git a/app/soapbox/components/ui/button/useButtonStyles.ts b/src/components/ui/button/useButtonStyles.ts
similarity index 100%
rename from app/soapbox/components/ui/button/useButtonStyles.ts
rename to src/components/ui/button/useButtonStyles.ts
diff --git a/app/soapbox/components/ui/card/__tests__/card.test.tsx b/src/components/ui/card/__tests__/card.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/card/__tests__/card.test.tsx
rename to src/components/ui/card/__tests__/card.test.tsx
diff --git a/app/soapbox/components/ui/card/card.tsx b/src/components/ui/card/card.tsx
similarity index 100%
rename from app/soapbox/components/ui/card/card.tsx
rename to src/components/ui/card/card.tsx
diff --git a/app/soapbox/components/ui/carousel/carousel.tsx b/src/components/ui/carousel/carousel.tsx
similarity index 100%
rename from app/soapbox/components/ui/carousel/carousel.tsx
rename to src/components/ui/carousel/carousel.tsx
diff --git a/app/soapbox/components/ui/checkbox/checkbox.tsx b/src/components/ui/checkbox/checkbox.tsx
similarity index 100%
rename from app/soapbox/components/ui/checkbox/checkbox.tsx
rename to src/components/ui/checkbox/checkbox.tsx
diff --git a/app/soapbox/components/ui/column/__tests__/column.test.tsx b/src/components/ui/column/__tests__/column.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/column/__tests__/column.test.tsx
rename to src/components/ui/column/__tests__/column.test.tsx
diff --git a/app/soapbox/components/ui/column/column.tsx b/src/components/ui/column/column.tsx
similarity index 100%
rename from app/soapbox/components/ui/column/column.tsx
rename to src/components/ui/column/column.tsx
diff --git a/app/soapbox/components/ui/combobox/combobox.css b/src/components/ui/combobox/combobox.css
similarity index 100%
rename from app/soapbox/components/ui/combobox/combobox.css
rename to src/components/ui/combobox/combobox.css
diff --git a/app/soapbox/components/ui/combobox/combobox.tsx b/src/components/ui/combobox/combobox.tsx
similarity index 100%
rename from app/soapbox/components/ui/combobox/combobox.tsx
rename to src/components/ui/combobox/combobox.tsx
diff --git a/app/soapbox/components/ui/counter/counter.tsx b/src/components/ui/counter/counter.tsx
similarity index 100%
rename from app/soapbox/components/ui/counter/counter.tsx
rename to src/components/ui/counter/counter.tsx
diff --git a/app/soapbox/components/ui/datepicker/__tests__/datepicker.test.tsx b/src/components/ui/datepicker/__tests__/datepicker.test.tsx
similarity index 96%
rename from app/soapbox/components/ui/datepicker/__tests__/datepicker.test.tsx
rename to src/components/ui/datepicker/__tests__/datepicker.test.tsx
index f2db8981c..fb6b1a2c7 100644
--- a/app/soapbox/components/ui/datepicker/__tests__/datepicker.test.tsx
+++ b/src/components/ui/datepicker/__tests__/datepicker.test.tsx
@@ -6,7 +6,7 @@ import Datepicker from '../datepicker';
describe('
', () => {
it('defaults to the current date', () => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
const today = new Date();
@@ -16,7 +16,7 @@ describe('
', () => {
});
it('changes number of days based on selected month and year', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
await userEvent.selectOptions(
@@ -43,7 +43,7 @@ describe('
', () => {
});
it('ranges from the current year to 120 years ago', () => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
const today = new Date();
@@ -54,7 +54,7 @@ describe('
', () => {
});
it('calls the onChange function when the inputs change', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render(
);
const today = new Date();
diff --git a/app/soapbox/components/ui/datepicker/datepicker.tsx b/src/components/ui/datepicker/datepicker.tsx
similarity index 100%
rename from app/soapbox/components/ui/datepicker/datepicker.tsx
rename to src/components/ui/datepicker/datepicker.tsx
diff --git a/app/soapbox/components/ui/divider/__tests__/divider.test.tsx b/src/components/ui/divider/__tests__/divider.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/divider/__tests__/divider.test.tsx
rename to src/components/ui/divider/__tests__/divider.test.tsx
diff --git a/app/soapbox/components/ui/divider/divider.tsx b/src/components/ui/divider/divider.tsx
similarity index 100%
rename from app/soapbox/components/ui/divider/divider.tsx
rename to src/components/ui/divider/divider.tsx
diff --git a/app/soapbox/components/ui/emoji-selector/emoji-selector.tsx b/src/components/ui/emoji-selector/emoji-selector.tsx
similarity index 100%
rename from app/soapbox/components/ui/emoji-selector/emoji-selector.tsx
rename to src/components/ui/emoji-selector/emoji-selector.tsx
diff --git a/app/soapbox/components/ui/emoji/__tests__/emoji.test.tsx b/src/components/ui/emoji/__tests__/emoji.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/emoji/__tests__/emoji.test.tsx
rename to src/components/ui/emoji/__tests__/emoji.test.tsx
diff --git a/app/soapbox/components/ui/emoji/emoji.tsx b/src/components/ui/emoji/emoji.tsx
similarity index 100%
rename from app/soapbox/components/ui/emoji/emoji.tsx
rename to src/components/ui/emoji/emoji.tsx
diff --git a/app/soapbox/components/ui/file-input/file-input.tsx b/src/components/ui/file-input/file-input.tsx
similarity index 100%
rename from app/soapbox/components/ui/file-input/file-input.tsx
rename to src/components/ui/file-input/file-input.tsx
diff --git a/app/soapbox/components/ui/form-actions/__tests__/form-actions.test.tsx b/src/components/ui/form-actions/__tests__/form-actions.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/form-actions/__tests__/form-actions.test.tsx
rename to src/components/ui/form-actions/__tests__/form-actions.test.tsx
diff --git a/app/soapbox/components/ui/form-actions/form-actions.tsx b/src/components/ui/form-actions/form-actions.tsx
similarity index 100%
rename from app/soapbox/components/ui/form-actions/form-actions.tsx
rename to src/components/ui/form-actions/form-actions.tsx
diff --git a/app/soapbox/components/ui/form-group/__tests__/form-group.test.tsx b/src/components/ui/form-group/__tests__/form-group.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/form-group/__tests__/form-group.test.tsx
rename to src/components/ui/form-group/__tests__/form-group.test.tsx
diff --git a/app/soapbox/components/ui/form-group/form-group.tsx b/src/components/ui/form-group/form-group.tsx
similarity index 100%
rename from app/soapbox/components/ui/form-group/form-group.tsx
rename to src/components/ui/form-group/form-group.tsx
diff --git a/app/soapbox/components/ui/form/__tests__/form.test.tsx b/src/components/ui/form/__tests__/form.test.tsx
similarity index 89%
rename from app/soapbox/components/ui/form/__tests__/form.test.tsx
rename to src/components/ui/form/__tests__/form.test.tsx
index d70e49acc..48ca61aa0 100644
--- a/app/soapbox/components/ui/form/__tests__/form.test.tsx
+++ b/src/components/ui/form/__tests__/form.test.tsx
@@ -5,7 +5,7 @@ import Form from '../form';
describe('
', () => {
it('renders children', () => {
- const onSubmitMock = jest.fn();
+ const onSubmitMock = vi.fn();
render(
,
);
@@ -14,7 +14,7 @@ describe('
', () => {
});
it('handles onSubmit prop', () => {
- const onSubmitMock = jest.fn();
+ const onSubmitMock = vi.fn();
render(
,
);
diff --git a/app/soapbox/components/ui/form/form.tsx b/src/components/ui/form/form.tsx
similarity index 100%
rename from app/soapbox/components/ui/form/form.tsx
rename to src/components/ui/form/form.tsx
diff --git a/app/soapbox/components/ui/hstack/hstack.tsx b/src/components/ui/hstack/hstack.tsx
similarity index 100%
rename from app/soapbox/components/ui/hstack/hstack.tsx
rename to src/components/ui/hstack/hstack.tsx
diff --git a/app/soapbox/components/ui/icon-button/icon-button.tsx b/src/components/ui/icon-button/icon-button.tsx
similarity index 100%
rename from app/soapbox/components/ui/icon-button/icon-button.tsx
rename to src/components/ui/icon-button/icon-button.tsx
diff --git a/app/soapbox/components/ui/icon/__tests__/svg-icon.test.tsx b/src/components/ui/icon/__tests__/svg-icon.test.tsx
similarity index 100%
rename from app/soapbox/components/ui/icon/__tests__/svg-icon.test.tsx
rename to src/components/ui/icon/__tests__/svg-icon.test.tsx
diff --git a/app/soapbox/components/ui/icon/icon.tsx b/src/components/ui/icon/icon.tsx
similarity index 100%
rename from app/soapbox/components/ui/icon/icon.tsx
rename to src/components/ui/icon/icon.tsx
diff --git a/app/soapbox/components/ui/icon/svg-icon.tsx b/src/components/ui/icon/svg-icon.tsx
similarity index 100%
rename from app/soapbox/components/ui/icon/svg-icon.tsx
rename to src/components/ui/icon/svg-icon.tsx
diff --git a/app/soapbox/components/ui/index.ts b/src/components/ui/index.ts
similarity index 97%
rename from app/soapbox/components/ui/index.ts
rename to src/components/ui/index.ts
index d66c98195..c565641f4 100644
--- a/app/soapbox/components/ui/index.ts
+++ b/src/components/ui/index.ts
@@ -38,7 +38,6 @@ export {
MenuList,
} from './menu/menu';
export { default as Modal } from './modal/modal';
-export { default as PhoneInput } from './phone-input/phone-input';
export { default as Popover } from './popover/popover';
export { default as Portal } from './portal/portal';
export { default as ProgressBar } from './progress-bar/progress-bar';
diff --git a/app/soapbox/components/ui/input/input.tsx b/src/components/ui/input/input.tsx
similarity index 100%
rename from app/soapbox/components/ui/input/input.tsx
rename to src/components/ui/input/input.tsx
diff --git a/app/soapbox/components/ui/layout/layout.tsx b/src/components/ui/layout/layout.tsx
similarity index 100%
rename from app/soapbox/components/ui/layout/layout.tsx
rename to src/components/ui/layout/layout.tsx
diff --git a/app/soapbox/components/ui/menu/menu.css b/src/components/ui/menu/menu.css
similarity index 100%
rename from app/soapbox/components/ui/menu/menu.css
rename to src/components/ui/menu/menu.css
diff --git a/app/soapbox/components/ui/menu/menu.tsx b/src/components/ui/menu/menu.tsx
similarity index 100%
rename from app/soapbox/components/ui/menu/menu.tsx
rename to src/components/ui/menu/menu.tsx
diff --git a/app/soapbox/components/ui/modal/__tests__/modal.test.tsx b/src/components/ui/modal/__tests__/modal.test.tsx
similarity index 93%
rename from app/soapbox/components/ui/modal/__tests__/modal.test.tsx
rename to src/components/ui/modal/__tests__/modal.test.tsx
index 3894a4604..9394d75cc 100644
--- a/app/soapbox/components/ui/modal/__tests__/modal.test.tsx
+++ b/src/components/ui/modal/__tests__/modal.test.tsx
@@ -29,7 +29,7 @@ describe('
', () => {
describe('onClose prop', () => {
it('renders the Icon to close the modal', async() => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
const user = userEvent.setup();
render(
);
@@ -48,7 +48,7 @@ describe('
', () => {
describe('confirmationAction prop', () => {
it('renders the confirmation button', async() => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
const user = userEvent.setup();
render(
@@ -71,8 +71,8 @@ describe('
', () => {
describe('with secondaryAction', () => {
it('renders the secondary button', async() => {
- const confirmationAction = jest.fn();
- const secondaryAction = jest.fn();
+ const confirmationAction = vi.fn();
+ const secondaryAction = vi.fn();
const user = userEvent.setup();
render(
@@ -104,8 +104,8 @@ describe('
', () => {
describe('with cancelAction', () => {
it('renders the cancel button', async() => {
- const confirmationAction = jest.fn();
- const cancelAction = jest.fn();
+ const confirmationAction = vi.fn();
+ const cancelAction = vi.fn();
const user = userEvent.setup();
render(
diff --git a/app/soapbox/components/ui/modal/modal.tsx b/src/components/ui/modal/modal.tsx
similarity index 100%
rename from app/soapbox/components/ui/modal/modal.tsx
rename to src/components/ui/modal/modal.tsx
diff --git a/app/soapbox/components/ui/popover/popover.tsx b/src/components/ui/popover/popover.tsx
similarity index 100%
rename from app/soapbox/components/ui/popover/popover.tsx
rename to src/components/ui/popover/popover.tsx
diff --git a/app/soapbox/components/ui/portal/portal.tsx b/src/components/ui/portal/portal.tsx
similarity index 100%
rename from app/soapbox/components/ui/portal/portal.tsx
rename to src/components/ui/portal/portal.tsx
diff --git a/app/soapbox/components/ui/progress-bar/progress-bar.tsx b/src/components/ui/progress-bar/progress-bar.tsx
similarity index 100%
rename from app/soapbox/components/ui/progress-bar/progress-bar.tsx
rename to src/components/ui/progress-bar/progress-bar.tsx
diff --git a/app/soapbox/components/ui/radio-button/radio-button.tsx b/src/components/ui/radio-button/radio-button.tsx
similarity index 100%
rename from app/soapbox/components/ui/radio-button/radio-button.tsx
rename to src/components/ui/radio-button/radio-button.tsx
diff --git a/app/soapbox/components/ui/select/select.tsx b/src/components/ui/select/select.tsx
similarity index 100%
rename from app/soapbox/components/ui/select/select.tsx
rename to src/components/ui/select/select.tsx
diff --git a/app/soapbox/components/ui/slider/slider.tsx b/src/components/ui/slider/slider.tsx
similarity index 100%
rename from app/soapbox/components/ui/slider/slider.tsx
rename to src/components/ui/slider/slider.tsx
diff --git a/app/soapbox/components/ui/spinner/spinner.css b/src/components/ui/spinner/spinner.css
similarity index 100%
rename from app/soapbox/components/ui/spinner/spinner.css
rename to src/components/ui/spinner/spinner.css
diff --git a/app/soapbox/components/ui/spinner/spinner.tsx b/src/components/ui/spinner/spinner.tsx
similarity index 100%
rename from app/soapbox/components/ui/spinner/spinner.tsx
rename to src/components/ui/spinner/spinner.tsx
diff --git a/app/soapbox/components/ui/stack/stack.tsx b/src/components/ui/stack/stack.tsx
similarity index 100%
rename from app/soapbox/components/ui/stack/stack.tsx
rename to src/components/ui/stack/stack.tsx
diff --git a/app/soapbox/components/ui/streamfield/streamfield.tsx b/src/components/ui/streamfield/streamfield.tsx
similarity index 100%
rename from app/soapbox/components/ui/streamfield/streamfield.tsx
rename to src/components/ui/streamfield/streamfield.tsx
diff --git a/app/soapbox/components/ui/tabs/tabs.css b/src/components/ui/tabs/tabs.css
similarity index 100%
rename from app/soapbox/components/ui/tabs/tabs.css
rename to src/components/ui/tabs/tabs.css
diff --git a/app/soapbox/components/ui/tabs/tabs.tsx b/src/components/ui/tabs/tabs.tsx
similarity index 100%
rename from app/soapbox/components/ui/tabs/tabs.tsx
rename to src/components/ui/tabs/tabs.tsx
diff --git a/app/soapbox/components/ui/tag-input/tag-input.tsx b/src/components/ui/tag-input/tag-input.tsx
similarity index 100%
rename from app/soapbox/components/ui/tag-input/tag-input.tsx
rename to src/components/ui/tag-input/tag-input.tsx
diff --git a/app/soapbox/components/ui/tag-input/tag.tsx b/src/components/ui/tag-input/tag.tsx
similarity index 100%
rename from app/soapbox/components/ui/tag-input/tag.tsx
rename to src/components/ui/tag-input/tag.tsx
diff --git a/app/soapbox/components/ui/text/text.tsx b/src/components/ui/text/text.tsx
similarity index 100%
rename from app/soapbox/components/ui/text/text.tsx
rename to src/components/ui/text/text.tsx
diff --git a/app/soapbox/components/ui/textarea/textarea.tsx b/src/components/ui/textarea/textarea.tsx
similarity index 100%
rename from app/soapbox/components/ui/textarea/textarea.tsx
rename to src/components/ui/textarea/textarea.tsx
diff --git a/app/soapbox/components/ui/toast/toast.tsx b/src/components/ui/toast/toast.tsx
similarity index 100%
rename from app/soapbox/components/ui/toast/toast.tsx
rename to src/components/ui/toast/toast.tsx
diff --git a/app/soapbox/components/ui/toggle/toggle.tsx b/src/components/ui/toggle/toggle.tsx
similarity index 100%
rename from app/soapbox/components/ui/toggle/toggle.tsx
rename to src/components/ui/toggle/toggle.tsx
diff --git a/app/soapbox/components/ui/tooltip/tooltip.tsx b/src/components/ui/tooltip/tooltip.tsx
similarity index 100%
rename from app/soapbox/components/ui/tooltip/tooltip.tsx
rename to src/components/ui/tooltip/tooltip.tsx
diff --git a/app/soapbox/components/ui/widget/widget.tsx b/src/components/ui/widget/widget.tsx
similarity index 100%
rename from app/soapbox/components/ui/widget/widget.tsx
rename to src/components/ui/widget/widget.tsx
diff --git a/app/soapbox/components/upload-progress.tsx b/src/components/upload-progress.tsx
similarity index 100%
rename from app/soapbox/components/upload-progress.tsx
rename to src/components/upload-progress.tsx
diff --git a/app/soapbox/components/upload.tsx b/src/components/upload.tsx
similarity index 100%
rename from app/soapbox/components/upload.tsx
rename to src/components/upload.tsx
diff --git a/app/soapbox/components/validation-checkmark.tsx b/src/components/validation-checkmark.tsx
similarity index 100%
rename from app/soapbox/components/validation-checkmark.tsx
rename to src/components/validation-checkmark.tsx
diff --git a/app/soapbox/components/verification-badge.tsx b/src/components/verification-badge.tsx
similarity index 90%
rename from app/soapbox/components/verification-badge.tsx
rename to src/components/verification-badge.tsx
index df10acc7b..0d0e67d7c 100644
--- a/app/soapbox/components/verification-badge.tsx
+++ b/src/components/verification-badge.tsx
@@ -18,7 +18,7 @@ const VerificationBadge: React.FC
= ({ className }) => {
const soapboxConfig = useSoapboxConfig();
// Prefer a custom icon if found
- const icon = soapboxConfig.verifiedIcon || require('assets/icons/verified.svg');
+ const icon = soapboxConfig.verifiedIcon || require('soapbox/assets/icons/verified.svg');
// Render component based on file extension
const Element = icon.endsWith('.svg') ? Icon : 'img';
diff --git a/app/soapbox/containers/account-container.tsx b/src/containers/account-container.tsx
similarity index 100%
rename from app/soapbox/containers/account-container.tsx
rename to src/containers/account-container.tsx
diff --git a/app/soapbox/containers/soapbox.tsx b/src/containers/soapbox.tsx
similarity index 80%
rename from app/soapbox/containers/soapbox.tsx
rename to src/containers/soapbox.tsx
index 9f8081c9f..fb5a15971 100644
--- a/app/soapbox/containers/soapbox.tsx
+++ b/src/containers/soapbox.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import { QueryClientProvider } from '@tanstack/react-query';
import clsx from 'clsx';
import React, { useState, useEffect } from 'react';
@@ -13,34 +11,28 @@ import { ScrollContext } from 'react-router-scroll-4';
import { loadInstance } from 'soapbox/actions/instance';
import { fetchMe } from 'soapbox/actions/me';
-import { loadSoapboxConfig, getSoapboxConfig } from 'soapbox/actions/soapbox';
-import { fetchVerificationConfig } from 'soapbox/actions/verification';
+import { loadSoapboxConfig } from 'soapbox/actions/soapbox';
import * as BuildConfig from 'soapbox/build-config';
import GdprBanner from 'soapbox/components/gdpr-banner';
import Helmet from 'soapbox/components/helmet';
import LoadingScreen from 'soapbox/components/loading-screen';
import { StatProvider } from 'soapbox/contexts/stat-context';
-import AuthLayout from 'soapbox/features/auth-layout';
import EmbeddedStatus from 'soapbox/features/embedded-status';
import PublicLayout from 'soapbox/features/public-layout';
import BundleContainer from 'soapbox/features/ui/containers/bundle-container';
import {
ModalContainer,
OnboardingWizard,
- WaitlistPage,
} from 'soapbox/features/ui/util/async-components';
import { createGlobals } from 'soapbox/globals';
import {
useAppSelector,
useAppDispatch,
useOwnAccount,
- useFeatures,
useSoapboxConfig,
useSettings,
useTheme,
useLocale,
- useInstance,
- useRegistrationStatus,
} from 'soapbox/hooks';
import MESSAGES from 'soapbox/messages';
import { normalizeSoapboxConfig } from 'soapbox/normalizers';
@@ -73,14 +65,6 @@ const loadInitial = () => {
await dispatch(loadInstance());
// Await for configuration
await dispatch(loadSoapboxConfig());
-
- const state = getState();
- const soapboxConfig = getSoapboxConfig(state);
- const pepeEnabled = soapboxConfig.getIn(['extensions', 'pepe', 'enabled']) === true;
-
- if (pepeEnabled && !state.me) {
- await dispatch(fetchVerificationConfig());
- }
};
};
@@ -89,15 +73,11 @@ const SoapboxMount = () => {
useCachedLocationHandler();
const me = useAppSelector(state => state.me);
- const instance = useInstance();
const { account } = useOwnAccount();
const soapboxConfig = useSoapboxConfig();
- const features = useFeatures();
- const { pepeEnabled } = useRegistrationStatus();
- const waitlisted = account && account.source?.approved === false;
const needsOnboarding = useAppSelector(state => state.onboarding.needsOnboarding);
- const showOnboarding = account && !waitlisted && needsOnboarding;
+ const showOnboarding = account && needsOnboarding;
const { redirectRootNoLogin } = soapboxConfig;
// @ts-ignore: I don't actually know what these should be, lol
@@ -115,25 +95,6 @@ const SoapboxMount = () => {
/** Render the auth layout or UI. */
const renderSwitch = () => (
-
-
- {/* Redirect signup route depending on Pepe enablement. */}
- {/* We should prefer using /signup in components. */}
- {pepeEnabled ? (
-
- ) : (
-
- )}
-
- {waitlisted && (
- (
-
- {(Component) => }
-
- )}
- />
- )}
-
{!me && (redirectRootNoLogin
?
: )}
@@ -142,21 +103,6 @@ const SoapboxMount = () => {
)}
-
-
-
- {(features.accountCreation && instance.registrations) && (
-
- )}
-
- {pepeEnabled && (
-
- )}
-
-
-
-
-
);
diff --git a/app/soapbox/containers/status-container.tsx b/src/containers/status-container.tsx
similarity index 100%
rename from app/soapbox/containers/status-container.tsx
rename to src/containers/status-container.tsx
diff --git a/app/soapbox/contexts/chat-context.tsx b/src/contexts/chat-context.tsx
similarity index 100%
rename from app/soapbox/contexts/chat-context.tsx
rename to src/contexts/chat-context.tsx
diff --git a/app/soapbox/contexts/stat-context.tsx b/src/contexts/stat-context.tsx
similarity index 100%
rename from app/soapbox/contexts/stat-context.tsx
rename to src/contexts/stat-context.tsx
diff --git a/app/soapbox/custom.ts b/src/custom.ts
similarity index 83%
rename from app/soapbox/custom.ts
rename to src/custom.ts
index efebce1e2..dcbcba547 100644
--- a/app/soapbox/custom.ts
+++ b/src/custom.ts
@@ -7,7 +7,7 @@ import * as BuildConfig from 'soapbox/build-config';
export const custom = (filename: string, fallback: any = {}): any => {
if (BuildConfig.NODE_ENV === 'test') return fallback;
- const modules = import.meta.glob('../../custom/*.json', { eager: true });
+ const modules = import.meta.glob('../custom/*.json', { eager: true });
const key = `../../custom/${filename}.json`;
return modules[key] ? modules[key] : fallback;
diff --git a/app/soapbox/entity-store/__tests__/reducer.test.ts b/src/entity-store/__tests__/reducer.test.ts
similarity index 100%
rename from app/soapbox/entity-store/__tests__/reducer.test.ts
rename to src/entity-store/__tests__/reducer.test.ts
diff --git a/app/soapbox/entity-store/actions.ts b/src/entity-store/actions.ts
similarity index 100%
rename from app/soapbox/entity-store/actions.ts
rename to src/entity-store/actions.ts
diff --git a/app/soapbox/entity-store/entities.ts b/src/entity-store/entities.ts
similarity index 100%
rename from app/soapbox/entity-store/entities.ts
rename to src/entity-store/entities.ts
diff --git a/app/soapbox/entity-store/hooks/index.ts b/src/entity-store/hooks/index.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/index.ts
rename to src/entity-store/hooks/index.ts
diff --git a/app/soapbox/entity-store/hooks/types.ts b/src/entity-store/hooks/types.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/types.ts
rename to src/entity-store/hooks/types.ts
diff --git a/app/soapbox/entity-store/hooks/useBatchedEntities.ts b/src/entity-store/hooks/useBatchedEntities.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useBatchedEntities.ts
rename to src/entity-store/hooks/useBatchedEntities.ts
diff --git a/app/soapbox/entity-store/hooks/useChangeEntity.ts b/src/entity-store/hooks/useChangeEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useChangeEntity.ts
rename to src/entity-store/hooks/useChangeEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useCreateEntity.ts b/src/entity-store/hooks/useCreateEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useCreateEntity.ts
rename to src/entity-store/hooks/useCreateEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useDeleteEntity.ts b/src/entity-store/hooks/useDeleteEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useDeleteEntity.ts
rename to src/entity-store/hooks/useDeleteEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useDismissEntity.ts b/src/entity-store/hooks/useDismissEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useDismissEntity.ts
rename to src/entity-store/hooks/useDismissEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useEntities.ts b/src/entity-store/hooks/useEntities.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useEntities.ts
rename to src/entity-store/hooks/useEntities.ts
diff --git a/app/soapbox/entity-store/hooks/useEntity.ts b/src/entity-store/hooks/useEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useEntity.ts
rename to src/entity-store/hooks/useEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useEntityActions.ts b/src/entity-store/hooks/useEntityActions.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useEntityActions.ts
rename to src/entity-store/hooks/useEntityActions.ts
diff --git a/app/soapbox/entity-store/hooks/useEntityLookup.ts b/src/entity-store/hooks/useEntityLookup.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useEntityLookup.ts
rename to src/entity-store/hooks/useEntityLookup.ts
diff --git a/app/soapbox/entity-store/hooks/useIncrementEntity.ts b/src/entity-store/hooks/useIncrementEntity.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useIncrementEntity.ts
rename to src/entity-store/hooks/useIncrementEntity.ts
diff --git a/app/soapbox/entity-store/hooks/useTransaction.ts b/src/entity-store/hooks/useTransaction.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/useTransaction.ts
rename to src/entity-store/hooks/useTransaction.ts
diff --git a/app/soapbox/entity-store/hooks/utils.ts b/src/entity-store/hooks/utils.ts
similarity index 100%
rename from app/soapbox/entity-store/hooks/utils.ts
rename to src/entity-store/hooks/utils.ts
diff --git a/app/soapbox/entity-store/reducer.ts b/src/entity-store/reducer.ts
similarity index 100%
rename from app/soapbox/entity-store/reducer.ts
rename to src/entity-store/reducer.ts
diff --git a/app/soapbox/entity-store/selectors.ts b/src/entity-store/selectors.ts
similarity index 100%
rename from app/soapbox/entity-store/selectors.ts
rename to src/entity-store/selectors.ts
diff --git a/app/soapbox/entity-store/types.ts b/src/entity-store/types.ts
similarity index 100%
rename from app/soapbox/entity-store/types.ts
rename to src/entity-store/types.ts
diff --git a/app/soapbox/entity-store/utils.ts b/src/entity-store/utils.ts
similarity index 100%
rename from app/soapbox/entity-store/utils.ts
rename to src/entity-store/utils.ts
diff --git a/app/soapbox/features/about/index.tsx b/src/features/about/index.tsx
similarity index 85%
rename from app/soapbox/features/about/index.tsx
rename to src/features/about/index.tsx
index 8d1be5c2e..d2aa40aaf 100644
--- a/app/soapbox/features/about/index.tsx
+++ b/src/features/about/index.tsx
@@ -3,6 +3,8 @@ import { FormattedMessage } from 'react-intl';
import { useParams } from 'react-router-dom';
import { fetchAboutPage } from 'soapbox/actions/about';
+import { Navlinks } from 'soapbox/components/navlinks';
+import { Card } from 'soapbox/components/ui';
import { useSoapboxConfig, useSettings, useAppDispatch } from 'soapbox/hooks';
import { languages } from '../preferences';
@@ -60,10 +62,15 @@ const AboutPage: React.FC = () => {
);
return (
-
-
+
+
+
+
- {alsoAvailable}
+
);
};
diff --git a/app/soapbox/features/account-gallery/components/media-item.tsx b/src/features/account-gallery/components/media-item.tsx
similarity index 100%
rename from app/soapbox/features/account-gallery/components/media-item.tsx
rename to src/features/account-gallery/components/media-item.tsx
diff --git a/app/soapbox/features/account-gallery/index.tsx b/src/features/account-gallery/index.tsx
similarity index 100%
rename from app/soapbox/features/account-gallery/index.tsx
rename to src/features/account-gallery/index.tsx
diff --git a/app/soapbox/features/account-timeline/components/moved-note.tsx b/src/features/account-timeline/components/moved-note.tsx
similarity index 100%
rename from app/soapbox/features/account-timeline/components/moved-note.tsx
rename to src/features/account-timeline/components/moved-note.tsx
diff --git a/app/soapbox/features/account-timeline/index.tsx b/src/features/account-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/account-timeline/index.tsx
rename to src/features/account-timeline/index.tsx
diff --git a/app/soapbox/features/account/components/header.tsx b/src/features/account/components/header.tsx
similarity index 99%
rename from app/soapbox/features/account/components/header.tsx
rename to src/features/account/components/header.tsx
index bbf494f34..733c10410 100644
--- a/app/soapbox/features/account/components/header.tsx
+++ b/src/features/account/components/header.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import { useMutation } from '@tanstack/react-query';
import { AxiosError } from 'axios';
import { List as ImmutableList } from 'immutable';
diff --git a/app/soapbox/features/admin/announcements.tsx b/src/features/admin/announcements.tsx
similarity index 100%
rename from app/soapbox/features/admin/announcements.tsx
rename to src/features/admin/announcements.tsx
diff --git a/app/soapbox/features/admin/components/admin-tabs.tsx b/src/features/admin/components/admin-tabs.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/admin-tabs.tsx
rename to src/features/admin/components/admin-tabs.tsx
diff --git a/app/soapbox/features/admin/components/dashcounter.tsx b/src/features/admin/components/dashcounter.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/dashcounter.tsx
rename to src/features/admin/components/dashcounter.tsx
diff --git a/app/soapbox/features/admin/components/latest-accounts-panel.tsx b/src/features/admin/components/latest-accounts-panel.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/latest-accounts-panel.tsx
rename to src/features/admin/components/latest-accounts-panel.tsx
diff --git a/app/soapbox/features/admin/components/registration-mode-picker.tsx b/src/features/admin/components/registration-mode-picker.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/registration-mode-picker.tsx
rename to src/features/admin/components/registration-mode-picker.tsx
diff --git a/app/soapbox/features/admin/components/report-status.tsx b/src/features/admin/components/report-status.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/report-status.tsx
rename to src/features/admin/components/report-status.tsx
diff --git a/app/soapbox/features/admin/components/report.tsx b/src/features/admin/components/report.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/report.tsx
rename to src/features/admin/components/report.tsx
diff --git a/app/soapbox/features/admin/components/unapproved-account.tsx b/src/features/admin/components/unapproved-account.tsx
similarity index 100%
rename from app/soapbox/features/admin/components/unapproved-account.tsx
rename to src/features/admin/components/unapproved-account.tsx
diff --git a/app/soapbox/features/admin/index.tsx b/src/features/admin/index.tsx
similarity index 100%
rename from app/soapbox/features/admin/index.tsx
rename to src/features/admin/index.tsx
diff --git a/app/soapbox/features/admin/moderation-log.tsx b/src/features/admin/moderation-log.tsx
similarity index 100%
rename from app/soapbox/features/admin/moderation-log.tsx
rename to src/features/admin/moderation-log.tsx
diff --git a/app/soapbox/features/admin/tabs/awaiting-approval.tsx b/src/features/admin/tabs/awaiting-approval.tsx
similarity index 100%
rename from app/soapbox/features/admin/tabs/awaiting-approval.tsx
rename to src/features/admin/tabs/awaiting-approval.tsx
diff --git a/app/soapbox/features/admin/tabs/dashboard.tsx b/src/features/admin/tabs/dashboard.tsx
similarity index 100%
rename from app/soapbox/features/admin/tabs/dashboard.tsx
rename to src/features/admin/tabs/dashboard.tsx
diff --git a/app/soapbox/features/admin/tabs/reports.tsx b/src/features/admin/tabs/reports.tsx
similarity index 100%
rename from app/soapbox/features/admin/tabs/reports.tsx
rename to src/features/admin/tabs/reports.tsx
diff --git a/app/soapbox/features/admin/user-index.tsx b/src/features/admin/user-index.tsx
similarity index 100%
rename from app/soapbox/features/admin/user-index.tsx
rename to src/features/admin/user-index.tsx
diff --git a/app/soapbox/features/aliases/components/account.tsx b/src/features/aliases/components/account.tsx
similarity index 100%
rename from app/soapbox/features/aliases/components/account.tsx
rename to src/features/aliases/components/account.tsx
diff --git a/app/soapbox/features/aliases/components/search.tsx b/src/features/aliases/components/search.tsx
similarity index 100%
rename from app/soapbox/features/aliases/components/search.tsx
rename to src/features/aliases/components/search.tsx
diff --git a/app/soapbox/features/aliases/index.tsx b/src/features/aliases/index.tsx
similarity index 100%
rename from app/soapbox/features/aliases/index.tsx
rename to src/features/aliases/index.tsx
diff --git a/app/soapbox/features/audio/index.tsx b/src/features/audio/index.tsx
similarity index 100%
rename from app/soapbox/features/audio/index.tsx
rename to src/features/audio/index.tsx
diff --git a/app/soapbox/features/audio/visualizer.ts b/src/features/audio/visualizer.ts
similarity index 100%
rename from app/soapbox/features/audio/visualizer.ts
rename to src/features/audio/visualizer.ts
diff --git a/app/soapbox/features/auth-login/components/__tests__/captcha.test.tsx b/src/features/auth-login/components/__tests__/captcha.test.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/__tests__/captcha.test.tsx
rename to src/features/auth-login/components/__tests__/captcha.test.tsx
diff --git a/app/soapbox/features/auth-login/components/__tests__/login-form.test.tsx b/src/features/auth-login/components/__tests__/login-form.test.tsx
similarity index 92%
rename from app/soapbox/features/auth-login/components/__tests__/login-form.test.tsx
rename to src/features/auth-login/components/__tests__/login-form.test.tsx
index 52a9210bb..85cff95a9 100644
--- a/app/soapbox/features/auth-login/components/__tests__/login-form.test.tsx
+++ b/src/features/auth-login/components/__tests__/login-form.test.tsx
@@ -7,7 +7,7 @@ import LoginForm from '../login-form';
describe('
', () => {
it('renders for Pleroma', () => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
const store = {
instance: normalizeInstance({
version: '2.7.2 (compatible; Pleroma 2.3.0)',
@@ -20,7 +20,7 @@ describe('
', () => {
});
it('renders for Mastodon', () => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
const store = {
instance: normalizeInstance({
version: '3.0.0',
@@ -33,7 +33,7 @@ describe('
', () => {
});
it('responds to the handleSubmit prop', () => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
render(
);
fireEvent.submit(screen.getByTestId(/button/i));
diff --git a/app/soapbox/features/auth-login/components/__tests__/login-page.test.tsx b/src/features/auth-login/components/__tests__/login-page.test.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/__tests__/login-page.test.tsx
rename to src/features/auth-login/components/__tests__/login-page.test.tsx
diff --git a/app/soapbox/features/auth-login/components/__tests__/otp-auth-form.test.tsx b/src/features/auth-login/components/__tests__/otp-auth-form.test.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/__tests__/otp-auth-form.test.tsx
rename to src/features/auth-login/components/__tests__/otp-auth-form.test.tsx
diff --git a/app/soapbox/features/auth-login/components/__tests__/password-reset-confirm.test.tsx b/src/features/auth-login/components/__tests__/password-reset-confirm.test.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/__tests__/password-reset-confirm.test.tsx
rename to src/features/auth-login/components/__tests__/password-reset-confirm.test.tsx
diff --git a/app/soapbox/features/auth-login/components/captcha.tsx b/src/features/auth-login/components/captcha.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/captcha.tsx
rename to src/features/auth-login/components/captcha.tsx
diff --git a/app/soapbox/features/auth-login/components/consumer-button.tsx b/src/features/auth-login/components/consumer-button.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/consumer-button.tsx
rename to src/features/auth-login/components/consumer-button.tsx
diff --git a/app/soapbox/features/auth-login/components/consumers-list.tsx b/src/features/auth-login/components/consumers-list.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/consumers-list.tsx
rename to src/features/auth-login/components/consumers-list.tsx
diff --git a/src/features/auth-login/components/login-form.tsx b/src/features/auth-login/components/login-form.tsx
new file mode 100644
index 000000000..19f9e76bb
--- /dev/null
+++ b/src/features/auth-login/components/login-form.tsx
@@ -0,0 +1,85 @@
+import React from 'react';
+import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
+import { Link } from 'react-router-dom';
+
+import { Button, Form, FormActions, FormGroup, Input } from 'soapbox/components/ui';
+import { useFeatures } from 'soapbox/hooks';
+
+const messages = defineMessages({
+ username: {
+ id: 'login.fields.username_label',
+ defaultMessage: 'E-mail or username',
+ },
+ email: {
+ id: 'login.fields.email_label',
+ defaultMessage: 'E-mail address',
+ },
+ password: {
+ id: 'login.fields.password_placeholder',
+ defaultMessage: 'Password',
+ },
+});
+
+interface ILoginForm {
+ isLoading: boolean
+ handleSubmit: React.FormEventHandler
+}
+
+const LoginForm: React.FC
= ({ isLoading, handleSubmit }) => {
+ const intl = useIntl();
+ const features = useFeatures();
+
+ const usernameLabel = intl.formatMessage(features.logInWithUsername ? messages.username : messages.email);
+ const passwordLabel = intl.formatMessage(messages.password);
+
+ return (
+
+ );
+};
+
+export default LoginForm;
diff --git a/app/soapbox/features/auth-login/components/login-page.tsx b/src/features/auth-login/components/login-page.tsx
similarity index 87%
rename from app/soapbox/features/auth-login/components/login-page.tsx
rename to src/features/auth-login/components/login-page.tsx
index 609af73a4..8817b6d39 100644
--- a/app/soapbox/features/auth-login/components/login-page.tsx
+++ b/src/features/auth-login/components/login-page.tsx
@@ -1,13 +1,16 @@
import React, { useState } from 'react';
+import { FormattedMessage } from 'react-intl';
import { Redirect } from 'react-router-dom';
import { logIn, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
import { fetchInstance } from 'soapbox/actions/instance';
import { closeModal } from 'soapbox/actions/modals';
+import { BigCard } from 'soapbox/components/big-card';
import { useAppDispatch, useAppSelector } from 'soapbox/hooks';
import { getRedirectUrl } from 'soapbox/utils/redirect';
import { isStandalone } from 'soapbox/utils/state';
+import ConsumersList from './consumers-list';
import LoginForm from './login-form';
import OtpAuthForm from './otp-auth-form';
@@ -68,7 +71,12 @@ const LoginPage = () => {
if (mfaAuthNeeded) return ;
- return ;
+ return (
+ }>
+
+
+
+ );
};
export default LoginPage;
diff --git a/app/soapbox/features/auth-login/components/logout.tsx b/src/features/auth-login/components/logout.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/logout.tsx
rename to src/features/auth-login/components/logout.tsx
diff --git a/app/soapbox/features/auth-login/components/otp-auth-form.tsx b/src/features/auth-login/components/otp-auth-form.tsx
similarity index 62%
rename from app/soapbox/features/auth-login/components/otp-auth-form.tsx
rename to src/features/auth-login/components/otp-auth-form.tsx
index 06423e5e6..a7b55d21d 100644
--- a/app/soapbox/features/auth-login/components/otp-auth-form.tsx
+++ b/src/features/auth-login/components/otp-auth-form.tsx
@@ -3,6 +3,7 @@ import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
import { Redirect } from 'react-router-dom';
import { otpVerify, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
+import { BigCard } from 'soapbox/components/big-card';
import { Button, Form, FormActions, FormGroup, Input } from 'soapbox/components/ui';
import { useAppDispatch } from 'soapbox/hooks';
@@ -47,41 +48,33 @@ const OtpAuthForm: React.FC = ({ mfa_token }) => {
if (shouldRedirect) return ;
return (
-
+
+
+
+
+
);
};
diff --git a/app/soapbox/features/auth-login/components/password-reset-confirm.tsx b/src/features/auth-login/components/password-reset-confirm.tsx
similarity index 52%
rename from app/soapbox/features/auth-login/components/password-reset-confirm.tsx
rename to src/features/auth-login/components/password-reset-confirm.tsx
index c931ac788..c079b418d 100644
--- a/app/soapbox/features/auth-login/components/password-reset-confirm.tsx
+++ b/src/features/auth-login/components/password-reset-confirm.tsx
@@ -3,9 +3,9 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import { Redirect } from 'react-router-dom';
import { resetPasswordConfirm } from 'soapbox/actions/security';
+import { BigCard } from 'soapbox/components/big-card';
import { Button, Form, FormActions, FormGroup, Input } from 'soapbox/components/ui';
-import PasswordIndicator from 'soapbox/features/verification/components/password-indicator';
-import { useAppDispatch, useFeatures } from 'soapbox/hooks';
+import { useAppDispatch } from 'soapbox/hooks';
const token = new URLSearchParams(window.location.search).get('reset_password_token');
@@ -24,11 +24,9 @@ const Statuses = {
const PasswordResetConfirm = () => {
const intl = useIntl();
const dispatch = useAppDispatch();
- const { passwordRequirements } = useFeatures();
const [password, setPassword] = React.useState('');
const [status, setStatus] = React.useState(Statuses.IDLE);
- const [hasValidPassword, setHasValidPassword] = React.useState(passwordRequirements ? false : true);
const isLoading = status === Statuses.LOADING;
@@ -58,37 +56,25 @@ const PasswordResetConfirm = () => {
}
return (
-
-
-
-
-
-
+ }>
+
+ } errors={renderErrors()}>
+
+
-
-
+
+
+
+
+
+
+
);
};
diff --git a/app/soapbox/features/auth-login/components/password-reset.tsx b/src/features/auth-login/components/password-reset.tsx
similarity index 59%
rename from app/soapbox/features/auth-login/components/password-reset.tsx
rename to src/features/auth-login/components/password-reset.tsx
index 6cc9109d3..11d1f42f0 100644
--- a/app/soapbox/features/auth-login/components/password-reset.tsx
+++ b/src/features/auth-login/components/password-reset.tsx
@@ -3,6 +3,7 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import { Redirect } from 'react-router-dom';
import { resetPassword } from 'soapbox/actions/security';
+import { BigCard } from 'soapbox/components/big-card';
import { Button, Form, FormActions, FormGroup, Input } from 'soapbox/components/ui';
import { useAppDispatch, useFeatures } from 'soapbox/hooks';
import toast from 'soapbox/toast';
@@ -36,32 +37,24 @@ const PasswordReset = () => {
if (success) return ;
return (
-
+
+
+
+
+
+
+
);
};
diff --git a/app/soapbox/features/auth-login/components/registration-form.tsx b/src/features/auth-login/components/registration-form.tsx
similarity index 100%
rename from app/soapbox/features/auth-login/components/registration-form.tsx
rename to src/features/auth-login/components/registration-form.tsx
diff --git a/src/features/auth-login/components/registration-page.tsx b/src/features/auth-login/components/registration-page.tsx
new file mode 100644
index 000000000..7f1e81ce5
--- /dev/null
+++ b/src/features/auth-login/components/registration-page.tsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import { FormattedMessage } from 'react-intl';
+
+import { BigCard } from 'soapbox/components/big-card';
+
+import RegistrationForm from './registration-form';
+
+const RegistrationPage: React.FC = () => {
+ return (
+ }>
+
+
+ );
+};
+
+export default RegistrationPage;
\ No newline at end of file
diff --git a/app/soapbox/features/auth-token-list/index.tsx b/src/features/auth-token-list/index.tsx
similarity index 100%
rename from app/soapbox/features/auth-token-list/index.tsx
rename to src/features/auth-token-list/index.tsx
diff --git a/app/soapbox/features/backups/index.tsx b/src/features/backups/index.tsx
similarity index 100%
rename from app/soapbox/features/backups/index.tsx
rename to src/features/backups/index.tsx
diff --git a/app/soapbox/features/birthdays/account.tsx b/src/features/birthdays/account.tsx
similarity index 100%
rename from app/soapbox/features/birthdays/account.tsx
rename to src/features/birthdays/account.tsx
diff --git a/app/soapbox/features/birthdays/date-picker.ts b/src/features/birthdays/date-picker.ts
similarity index 100%
rename from app/soapbox/features/birthdays/date-picker.ts
rename to src/features/birthdays/date-picker.ts
diff --git a/app/soapbox/features/blocks/index.tsx b/src/features/blocks/index.tsx
similarity index 100%
rename from app/soapbox/features/blocks/index.tsx
rename to src/features/blocks/index.tsx
diff --git a/app/soapbox/features/bookmarks/index.tsx b/src/features/bookmarks/index.tsx
similarity index 100%
rename from app/soapbox/features/bookmarks/index.tsx
rename to src/features/bookmarks/index.tsx
diff --git a/app/soapbox/features/chats/components/__tests__/chat-list-item.test.tsx b/src/features/chats/components/__tests__/chat-list-item.test.tsx
similarity index 88%
rename from app/soapbox/features/chats/components/__tests__/chat-list-item.test.tsx
rename to src/features/chats/components/__tests__/chat-list-item.test.tsx
index 1342bb526..bd410d0fb 100644
--- a/app/soapbox/features/chats/components/__tests__/chat-list-item.test.tsx
+++ b/src/features/chats/components/__tests__/chat-list-item.test.tsx
@@ -30,7 +30,7 @@ const chat: any = {
describe(' ', () => {
it('renders correctly', () => {
- render( );
+ render( );
expect(screen.getByTestId('chat-list-item')).toBeInTheDocument();
expect(screen.getByTestId('chat-list-item')).toHaveTextContent(chat.account.display_name);
@@ -38,28 +38,28 @@ describe(' ', () => {
describe('last message content', () => {
it('renders the last message', () => {
- render( );
+ render( );
expect(screen.getByTestId('chat-last-message')).toBeInTheDocument();
});
it('does not render the last message', () => {
const changedChat = { ...chat, last_message: null };
- render( );
+ render( );
expect(screen.queryAllByTestId('chat-last-message')).toHaveLength(0);
});
describe('unread', () => {
it('renders the unread dot', () => {
- render( );
+ render( );
expect(screen.getByTestId('chat-unread-indicator')).toBeInTheDocument();
});
it('does not render the unread dot', () => {
const changedChat = { ...chat, last_message: { ...chat.last_message, unread: false } };
- render( );
+ render( );
expect(screen.queryAllByTestId('chat-unread-indicator')).toHaveLength(0);
});
diff --git a/app/soapbox/features/chats/components/__tests__/chat-message-list.test.tsx b/src/features/chats/components/__tests__/chat-message-list.test.tsx
similarity index 100%
rename from app/soapbox/features/chats/components/__tests__/chat-message-list.test.tsx
rename to src/features/chats/components/__tests__/chat-message-list.test.tsx
diff --git a/app/soapbox/features/chats/components/__tests__/chat-message-reaction.test.tsx b/src/features/chats/components/__tests__/chat-message-reaction.test.tsx
similarity index 89%
rename from app/soapbox/features/chats/components/__tests__/chat-message-reaction.test.tsx
rename to src/features/chats/components/__tests__/chat-message-reaction.test.tsx
index 6ab22d4d5..0b3ce1887 100644
--- a/app/soapbox/features/chats/components/__tests__/chat-message-reaction.test.tsx
+++ b/src/features/chats/components/__tests__/chat-message-reaction.test.tsx
@@ -15,8 +15,8 @@ describe(' ', () => {
render(
,
);
@@ -25,8 +25,8 @@ describe(' ', () => {
});
it('triggers the "onAddReaction" function', async () => {
- const onAddFn = jest.fn();
- const onRemoveFn = jest.fn();
+ const onAddFn = vi.fn();
+ const onRemoveFn = vi.fn();
const user = userEvent.setup();
render(
@@ -48,8 +48,8 @@ describe(' ', () => {
});
it('triggers the "onRemoveReaction" function', async () => {
- const onAddFn = jest.fn();
- const onRemoveFn = jest.fn();
+ const onAddFn = vi.fn();
+ const onRemoveFn = vi.fn();
const user = userEvent.setup();
render(
diff --git a/app/soapbox/features/chats/components/__tests__/chat-pane-header.test.tsx b/src/features/chats/components/__tests__/chat-pane-header.test.tsx
similarity index 79%
rename from app/soapbox/features/chats/components/__tests__/chat-pane-header.test.tsx
rename to src/features/chats/components/__tests__/chat-pane-header.test.tsx
index aaf658c0a..06d1a1d97 100644
--- a/app/soapbox/features/chats/components/__tests__/chat-pane-header.test.tsx
+++ b/src/features/chats/components/__tests__/chat-pane-header.test.tsx
@@ -6,7 +6,7 @@ import ChatPaneHeader from '../chat-widget/chat-pane-header';
describe(' ', () => {
it('handles the onToggle prop', async () => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
render( );
await userEvent.click(screen.getByTestId('icon-button'));
@@ -17,7 +17,7 @@ describe(' ', () => {
describe('when it is a string', () => {
it('renders the title', () => {
const title = 'Messages';
- render( );
+ render( );
expect(screen.getByTestId('title')).toHaveTextContent(title);
});
@@ -28,7 +28,7 @@ describe(' ', () => {
const title = (
);
- render( );
+ render( );
expect(screen.getByTestId('title')).toHaveTextContent('hello world');
});
@@ -39,7 +39,7 @@ describe(' ', () => {
describe('when present', () => {
it('renders the unread count', () => {
const count = 14;
- render( );
+ render( );
expect(screen.getByTestId('unread-count')).toHaveTextContent(String(count));
});
@@ -48,7 +48,7 @@ describe(' ', () => {
describe('when 0', () => {
it('does not render the unread count', () => {
const count = 0;
- render( );
+ render( );
expect(screen.queryAllByTestId('unread-count')).toHaveLength(0);
});
@@ -56,7 +56,7 @@ describe(' ', () => {
describe('when unprovided', () => {
it('does not render the unread count', () => {
- render( );
+ render( );
expect(screen.queryAllByTestId('unread-count')).toHaveLength(0);
});
@@ -65,11 +65,11 @@ describe(' ', () => {
describe('secondaryAction prop', () => {
it('handles the secondaryAction callback', async () => {
- const mockFn = jest.fn();
+ const mockFn = vi.fn();
render(
', () => {
it('defaults to 2 days', () => {
- const handler = jest.fn();
+ const handler = vi.fn();
render( );
expect(screen.getByTestId('duration-selector-days')).toHaveValue('2');
@@ -16,7 +16,7 @@ describe(' ', () => {
describe('when changing the day', () => {
it('calls the "onDurationChange" callback', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render( );
await userEvent.selectOptions(
@@ -29,7 +29,7 @@ describe(' ', () => {
});
it('should disable the hour/minute select if 7 days selected', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render( );
expect(screen.getByTestId('duration-selector-hours')).not.toBeDisabled();
@@ -47,7 +47,7 @@ describe(' ', () => {
describe('when changing the hour', () => {
it('calls the "onDurationChange" callback', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render( );
await userEvent.selectOptions(
@@ -62,7 +62,7 @@ describe(' ', () => {
describe('when changing the minute', () => {
it('calls the "onDurationChange" callback', async() => {
- const handler = jest.fn();
+ const handler = vi.fn();
render( );
await userEvent.selectOptions(
diff --git a/app/soapbox/features/compose/components/polls/duration-selector.tsx b/src/features/compose/components/polls/duration-selector.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/polls/duration-selector.tsx
rename to src/features/compose/components/polls/duration-selector.tsx
diff --git a/app/soapbox/features/compose/components/polls/poll-form.tsx b/src/features/compose/components/polls/poll-form.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/polls/poll-form.tsx
rename to src/features/compose/components/polls/poll-form.tsx
diff --git a/app/soapbox/features/compose/components/privacy-dropdown.tsx b/src/features/compose/components/privacy-dropdown.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/privacy-dropdown.tsx
rename to src/features/compose/components/privacy-dropdown.tsx
diff --git a/app/soapbox/features/compose/components/reply-group-indicator.tsx b/src/features/compose/components/reply-group-indicator.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/reply-group-indicator.tsx
rename to src/features/compose/components/reply-group-indicator.tsx
diff --git a/app/soapbox/features/compose/components/reply-indicator.tsx b/src/features/compose/components/reply-indicator.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/reply-indicator.tsx
rename to src/features/compose/components/reply-indicator.tsx
diff --git a/app/soapbox/features/compose/components/reply-mentions.tsx b/src/features/compose/components/reply-mentions.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/reply-mentions.tsx
rename to src/features/compose/components/reply-mentions.tsx
diff --git a/app/soapbox/features/compose/components/schedule-button.tsx b/src/features/compose/components/schedule-button.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/schedule-button.tsx
rename to src/features/compose/components/schedule-button.tsx
diff --git a/app/soapbox/features/compose/components/schedule-form.tsx b/src/features/compose/components/schedule-form.tsx
similarity index 99%
rename from app/soapbox/features/compose/components/schedule-form.tsx
rename to src/features/compose/components/schedule-form.tsx
index 769dc6a97..add85a428 100644
--- a/app/soapbox/features/compose/components/schedule-form.tsx
+++ b/src/features/compose/components/schedule-form.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import clsx from 'clsx';
import React from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
diff --git a/app/soapbox/features/compose/components/search-results.tsx b/src/features/compose/components/search-results.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/search-results.tsx
rename to src/features/compose/components/search-results.tsx
diff --git a/app/soapbox/features/compose/components/search.tsx b/src/features/compose/components/search.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/search.tsx
rename to src/features/compose/components/search.tsx
diff --git a/app/soapbox/features/compose/components/spoiler-button.tsx b/src/features/compose/components/spoiler-button.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/spoiler-button.tsx
rename to src/features/compose/components/spoiler-button.tsx
diff --git a/app/soapbox/features/compose/components/spoiler-input.tsx b/src/features/compose/components/spoiler-input.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/spoiler-input.tsx
rename to src/features/compose/components/spoiler-input.tsx
diff --git a/app/soapbox/features/compose/components/text-character-counter.tsx b/src/features/compose/components/text-character-counter.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/text-character-counter.tsx
rename to src/features/compose/components/text-character-counter.tsx
diff --git a/app/soapbox/features/compose/components/upload-button.tsx b/src/features/compose/components/upload-button.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/upload-button.tsx
rename to src/features/compose/components/upload-button.tsx
diff --git a/app/soapbox/features/compose/components/upload-form.tsx b/src/features/compose/components/upload-form.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/upload-form.tsx
rename to src/features/compose/components/upload-form.tsx
diff --git a/app/soapbox/features/compose/components/upload-progress.tsx b/src/features/compose/components/upload-progress.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/upload-progress.tsx
rename to src/features/compose/components/upload-progress.tsx
diff --git a/app/soapbox/features/compose/components/upload.tsx b/src/features/compose/components/upload.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/upload.tsx
rename to src/features/compose/components/upload.tsx
diff --git a/app/soapbox/features/compose/components/visual-character-counter.tsx b/src/features/compose/components/visual-character-counter.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/visual-character-counter.tsx
rename to src/features/compose/components/visual-character-counter.tsx
diff --git a/app/soapbox/features/compose/components/warning.tsx b/src/features/compose/components/warning.tsx
similarity index 100%
rename from app/soapbox/features/compose/components/warning.tsx
rename to src/features/compose/components/warning.tsx
diff --git a/app/soapbox/features/compose/containers/quoted-status-container.tsx b/src/features/compose/containers/quoted-status-container.tsx
similarity index 100%
rename from app/soapbox/features/compose/containers/quoted-status-container.tsx
rename to src/features/compose/containers/quoted-status-container.tsx
diff --git a/app/soapbox/features/compose/containers/reply-indicator-container.ts b/src/features/compose/containers/reply-indicator-container.ts
similarity index 100%
rename from app/soapbox/features/compose/containers/reply-indicator-container.ts
rename to src/features/compose/containers/reply-indicator-container.ts
diff --git a/app/soapbox/features/compose/containers/schedule-form-container.tsx b/src/features/compose/containers/schedule-form-container.tsx
similarity index 100%
rename from app/soapbox/features/compose/containers/schedule-form-container.tsx
rename to src/features/compose/containers/schedule-form-container.tsx
diff --git a/app/soapbox/features/compose/containers/upload-button-container.ts b/src/features/compose/containers/upload-button-container.ts
similarity index 100%
rename from app/soapbox/features/compose/containers/upload-button-container.ts
rename to src/features/compose/containers/upload-button-container.ts
diff --git a/app/soapbox/features/compose/containers/warning-container.tsx b/src/features/compose/containers/warning-container.tsx
similarity index 100%
rename from app/soapbox/features/compose/containers/warning-container.tsx
rename to src/features/compose/containers/warning-container.tsx
diff --git a/app/soapbox/features/compose/util/counter.ts b/src/features/compose/util/counter.ts
similarity index 72%
rename from app/soapbox/features/compose/util/counter.ts
rename to src/features/compose/util/counter.ts
index 379da63b9..6d999a547 100644
--- a/app/soapbox/features/compose/util/counter.ts
+++ b/src/features/compose/util/counter.ts
@@ -5,5 +5,5 @@ const urlPlaceholder = 'xxxxxxxxxxxxxxxxxxxxxxx';
export function countableText(inputText: string) {
return inputText
.replace(urlRegex, urlPlaceholder)
- .replace(/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/ig, '$1@$3');
+ .replace(/(^|[^/\w])@(([a-z0-9_]+)@[a-z0-9.-]+[a-z0-9]+)/ig, '$1@$3');
}
diff --git a/app/soapbox/features/compose/util/url-regex.ts b/src/features/compose/util/url-regex.ts
similarity index 97%
rename from app/soapbox/features/compose/util/url-regex.ts
rename to src/features/compose/util/url-regex.ts
index 5b015240e..fccabb1e5 100644
--- a/app/soapbox/features/compose/util/url-regex.ts
+++ b/src/features/compose/util/url-regex.ts
@@ -32,7 +32,8 @@ const stringSupplant = function(str: string, values: { [x: string]: any }) {
export const urlRegex = (function() {
regexen.spaces_group = /\x09-\x0D\x20\x85\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000/; // eslint-disable-line no-control-regex
regexen.invalid_chars_group = /\uFFFE\uFEFF\uFFFF\u202A-\u202E/;
- regexen.punct = /\!'#%&'\(\)*\+,\\\-\.\/:;<=>\?@\[\]\^_{|}~\$/;
+ // eslint-disable-next-line no-useless-escape
+ regexen.punct = /!'#%&@,:;<=>_~{}\$\?\^\*\+\-\.\(\)\[\]\|\/\\/;
regexen.validUrlPrecedingChars = regexSupplant(/(?:[^A-Za-z0-9@@$###{invalid_chars_group}]|^)/);
regexen.invalidDomainChars = stringSupplant('#{punct}#{spaces_group}#{invalid_chars_group}', regexen);
regexen.validDomainChars = regexSupplant(/[^#{invalidDomainChars}]/);
@@ -148,7 +149,7 @@ export const urlRegex = (function() {
regexen.validDomain = regexSupplant(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/);
regexen.validPortNumber = /[0-9]+/;
regexen.pd = /\u002d\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a\u2e40\u301c\u3030\u30a0\ufe31\ufe58\ufe63\uff0d/;
- regexen.validGeneralUrlPathChars = regexSupplant(/[^#{spaces_group}\(\)\?]/i);
+ regexen.validGeneralUrlPathChars = regexSupplant(/[^#{spaces_group}()?]/i);
// Allow URL paths to contain up to two nested levels of balanced parens
// 1. Used in Wikipedia URLs like /Primer_(film)
// 2. Used in IIS sessions like /S(dfd346)/
@@ -171,17 +172,18 @@ export const urlRegex = (function() {
'i');
// Valid end-of-path characters (so /foo. does not gobble the period).
// 1. Allow = for empty URL parameters and other URL-join artifacts
- regexen.validUrlPathEndingChars = regexSupplant(/[^#{spaces_group}\(\)\?!\*';:=\,\.\$%\[\]#{pd}~&\|@]|(?:#{validUrlBalancedParens})/i);
+ regexen.validUrlPathEndingChars = regexSupplant(/[^#{spaces_group}()?!*';:=,.$%[\]#{pd}~&|@]|(?:#{validUrlBalancedParens})/i);
// Allow @ in a url, but only in the middle. Catch things like http://example.com/@user/
regexen.validUrlPath = regexSupplant('(?:' +
'(?:' +
'#{validGeneralUrlPathChars}*' +
'(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*' +
'#{validUrlPathEndingChars}' +
+ // eslint-disable-next-line no-useless-escape
')|(?:@#{validGeneralUrlPathChars}+\/)' +
')', 'i');
- regexen.validUrlQueryChars = /[a-z0-9!?\*'@\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i;
- regexen.validUrlQueryEndingChars = /[a-z0-9_&=#\/]/i;
+ regexen.validUrlQueryChars = /[a-z0-9!?*'@();:&=+$/%#[\]\-_.,~|]/i;
+ regexen.validUrlQueryEndingChars = /[a-z0-9_&=#/]/i;
regexen.validUrl = regexSupplant(
'(' + // $1 URL
'(https?:\\/\\/)' + // $2 Protocol
diff --git a/app/soapbox/features/conversations/components/conversation.tsx b/src/features/conversations/components/conversation.tsx
similarity index 100%
rename from app/soapbox/features/conversations/components/conversation.tsx
rename to src/features/conversations/components/conversation.tsx
diff --git a/app/soapbox/features/conversations/components/conversations-list.tsx b/src/features/conversations/components/conversations-list.tsx
similarity index 100%
rename from app/soapbox/features/conversations/components/conversations-list.tsx
rename to src/features/conversations/components/conversations-list.tsx
diff --git a/app/soapbox/features/conversations/index.tsx b/src/features/conversations/index.tsx
similarity index 100%
rename from app/soapbox/features/conversations/index.tsx
rename to src/features/conversations/index.tsx
diff --git a/app/soapbox/features/crypto-donate/components/crypto-address.tsx b/src/features/crypto-donate/components/crypto-address.tsx
similarity index 100%
rename from app/soapbox/features/crypto-donate/components/crypto-address.tsx
rename to src/features/crypto-donate/components/crypto-address.tsx
diff --git a/app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx b/src/features/crypto-donate/components/crypto-donate-panel.tsx
similarity index 100%
rename from app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx
rename to src/features/crypto-donate/components/crypto-donate-panel.tsx
diff --git a/app/soapbox/features/crypto-donate/components/crypto-icon.tsx b/src/features/crypto-donate/components/crypto-icon.tsx
similarity index 80%
rename from app/soapbox/features/crypto-donate/components/crypto-icon.tsx
rename to src/features/crypto-donate/components/crypto-icon.tsx
index 07f0c9be6..26f51a464 100644
--- a/app/soapbox/features/crypto-donate/components/crypto-icon.tsx
+++ b/src/features/crypto-donate/components/crypto-icon.tsx
@@ -3,8 +3,8 @@ import React from 'react';
/** Get crypto icon URL by ticker symbol, or fall back to generic icon */
const getIcon = (ticker: string): string => {
- const modules: Record = import.meta.glob('../../../../../node_modules/cryptocurrency-icons/svg/color/*.svg', { eager: true });
- const key = `../../../../../node_modules/cryptocurrency-icons/svg/color/${ticker}.svg`;
+ const modules: Record = import.meta.glob('../../../../node_modules/cryptocurrency-icons/svg/color/*.svg', { eager: true });
+ const key = `../../../../node_modules/cryptocurrency-icons/svg/color/${ticker}.svg`;
return modules[key]?.default || genericIcon;
};
diff --git a/app/soapbox/features/crypto-donate/components/detailed-crypto-address.tsx b/src/features/crypto-donate/components/detailed-crypto-address.tsx
similarity index 100%
rename from app/soapbox/features/crypto-donate/components/detailed-crypto-address.tsx
rename to src/features/crypto-donate/components/detailed-crypto-address.tsx
diff --git a/app/soapbox/features/crypto-donate/components/site-wallet.tsx b/src/features/crypto-donate/components/site-wallet.tsx
similarity index 100%
rename from app/soapbox/features/crypto-donate/components/site-wallet.tsx
rename to src/features/crypto-donate/components/site-wallet.tsx
diff --git a/app/soapbox/features/crypto-donate/index.tsx b/src/features/crypto-donate/index.tsx
similarity index 100%
rename from app/soapbox/features/crypto-donate/index.tsx
rename to src/features/crypto-donate/index.tsx
diff --git a/app/soapbox/features/crypto-donate/utils/block-explorer.ts b/src/features/crypto-donate/utils/block-explorer.ts
similarity index 100%
rename from app/soapbox/features/crypto-donate/utils/block-explorer.ts
rename to src/features/crypto-donate/utils/block-explorer.ts
diff --git a/app/soapbox/features/crypto-donate/utils/block-explorers.json b/src/features/crypto-donate/utils/block-explorers.json
similarity index 100%
rename from app/soapbox/features/crypto-donate/utils/block-explorers.json
rename to src/features/crypto-donate/utils/block-explorers.json
diff --git a/app/soapbox/features/crypto-donate/utils/coin-db.ts b/src/features/crypto-donate/utils/coin-db.ts
similarity index 100%
rename from app/soapbox/features/crypto-donate/utils/coin-db.ts
rename to src/features/crypto-donate/utils/coin-db.ts
diff --git a/app/soapbox/features/crypto-donate/utils/manifest-map.ts b/src/features/crypto-donate/utils/manifest-map.ts
similarity index 100%
rename from app/soapbox/features/crypto-donate/utils/manifest-map.ts
rename to src/features/crypto-donate/utils/manifest-map.ts
diff --git a/app/soapbox/features/delete-account/index.tsx b/src/features/delete-account/index.tsx
similarity index 100%
rename from app/soapbox/features/delete-account/index.tsx
rename to src/features/delete-account/index.tsx
diff --git a/app/soapbox/features/developers/apps/create.tsx b/src/features/developers/apps/create.tsx
similarity index 100%
rename from app/soapbox/features/developers/apps/create.tsx
rename to src/features/developers/apps/create.tsx
diff --git a/app/soapbox/features/developers/components/indicator.tsx b/src/features/developers/components/indicator.tsx
similarity index 100%
rename from app/soapbox/features/developers/components/indicator.tsx
rename to src/features/developers/components/indicator.tsx
diff --git a/app/soapbox/features/developers/developers-challenge.tsx b/src/features/developers/developers-challenge.tsx
similarity index 100%
rename from app/soapbox/features/developers/developers-challenge.tsx
rename to src/features/developers/developers-challenge.tsx
diff --git a/app/soapbox/features/developers/developers-menu.tsx b/src/features/developers/developers-menu.tsx
similarity index 100%
rename from app/soapbox/features/developers/developers-menu.tsx
rename to src/features/developers/developers-menu.tsx
diff --git a/app/soapbox/features/developers/index.tsx b/src/features/developers/index.tsx
similarity index 100%
rename from app/soapbox/features/developers/index.tsx
rename to src/features/developers/index.tsx
diff --git a/app/soapbox/features/developers/service-worker-info.tsx b/src/features/developers/service-worker-info.tsx
similarity index 100%
rename from app/soapbox/features/developers/service-worker-info.tsx
rename to src/features/developers/service-worker-info.tsx
diff --git a/app/soapbox/features/developers/settings-store.tsx b/src/features/developers/settings-store.tsx
similarity index 100%
rename from app/soapbox/features/developers/settings-store.tsx
rename to src/features/developers/settings-store.tsx
diff --git a/app/soapbox/features/direct-timeline/index.tsx b/src/features/direct-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/direct-timeline/index.tsx
rename to src/features/direct-timeline/index.tsx
diff --git a/app/soapbox/features/directory/components/account-card.tsx b/src/features/directory/components/account-card.tsx
similarity index 100%
rename from app/soapbox/features/directory/components/account-card.tsx
rename to src/features/directory/components/account-card.tsx
diff --git a/app/soapbox/features/directory/index.tsx b/src/features/directory/index.tsx
similarity index 100%
rename from app/soapbox/features/directory/index.tsx
rename to src/features/directory/index.tsx
diff --git a/app/soapbox/features/domain-blocks/index.tsx b/src/features/domain-blocks/index.tsx
similarity index 100%
rename from app/soapbox/features/domain-blocks/index.tsx
rename to src/features/domain-blocks/index.tsx
diff --git a/app/soapbox/features/edit-email/index.tsx b/src/features/edit-email/index.tsx
similarity index 100%
rename from app/soapbox/features/edit-email/index.tsx
rename to src/features/edit-email/index.tsx
diff --git a/app/soapbox/features/edit-password/index.tsx b/src/features/edit-password/index.tsx
similarity index 88%
rename from app/soapbox/features/edit-password/index.tsx
rename to src/features/edit-password/index.tsx
index 026515d53..7761f77a2 100644
--- a/app/soapbox/features/edit-password/index.tsx
+++ b/src/features/edit-password/index.tsx
@@ -3,11 +3,9 @@ import { defineMessages, useIntl } from 'react-intl';
import { changePassword } from 'soapbox/actions/security';
import { Button, Column, Form, FormActions, FormGroup, Input } from 'soapbox/components/ui';
-import { useAppDispatch, useFeatures } from 'soapbox/hooks';
+import { useAppDispatch } from 'soapbox/hooks';
import toast from 'soapbox/toast';
-import PasswordIndicator from '../verification/components/password-indicator';
-
const messages = defineMessages({
updatePasswordSuccess: { id: 'security.update_password.success', defaultMessage: 'Password successfully updated.' },
updatePasswordFail: { id: 'security.update_password.fail', defaultMessage: 'Update password failed.' },
@@ -24,11 +22,9 @@ const initialState = { currentPassword: '', newPassword: '', newPasswordConfirma
const EditPassword = () => {
const intl = useIntl();
const dispatch = useAppDispatch();
- const { passwordRequirements } = useFeatures();
const [state, setState] = React.useState(initialState);
const [isLoading, setLoading] = React.useState(false);
- const [hasValidPassword, setHasValidPassword] = React.useState(passwordRequirements ? false : true);
const { currentPassword, newPassword, newPasswordConfirmation } = state;
@@ -73,10 +69,6 @@ const EditPassword = () => {
onChange={handleInputChange}
value={newPassword}
/>
-
- {passwordRequirements && (
-
- )}
@@ -93,7 +85,7 @@ const EditPassword = () => {
{intl.formatMessage(messages.cancel)}
-
+
{intl.formatMessage(messages.submit)}
diff --git a/app/soapbox/features/edit-profile/components/avatar-picker.tsx b/src/features/edit-profile/components/avatar-picker.tsx
similarity index 100%
rename from app/soapbox/features/edit-profile/components/avatar-picker.tsx
rename to src/features/edit-profile/components/avatar-picker.tsx
diff --git a/app/soapbox/features/edit-profile/components/header-picker.tsx b/src/features/edit-profile/components/header-picker.tsx
similarity index 100%
rename from app/soapbox/features/edit-profile/components/header-picker.tsx
rename to src/features/edit-profile/components/header-picker.tsx
diff --git a/app/soapbox/features/edit-profile/index.tsx b/src/features/edit-profile/index.tsx
similarity index 100%
rename from app/soapbox/features/edit-profile/index.tsx
rename to src/features/edit-profile/index.tsx
diff --git a/app/soapbox/features/email-confirmation/index.tsx b/src/features/email-confirmation/index.tsx
similarity index 100%
rename from app/soapbox/features/email-confirmation/index.tsx
rename to src/features/email-confirmation/index.tsx
diff --git a/app/soapbox/features/embedded-status/index.tsx b/src/features/embedded-status/index.tsx
similarity index 100%
rename from app/soapbox/features/embedded-status/index.tsx
rename to src/features/embedded-status/index.tsx
diff --git a/app/soapbox/features/emoji/__tests__/emoji-index.test.ts b/src/features/emoji/__tests__/emoji-index.test.ts
similarity index 100%
rename from app/soapbox/features/emoji/__tests__/emoji-index.test.ts
rename to src/features/emoji/__tests__/emoji-index.test.ts
diff --git a/app/soapbox/features/emoji/__tests__/emoji.test.ts b/src/features/emoji/__tests__/emoji.test.ts
similarity index 100%
rename from app/soapbox/features/emoji/__tests__/emoji.test.ts
rename to src/features/emoji/__tests__/emoji.test.ts
diff --git a/app/soapbox/features/emoji/components/emoji-picker-dropdown.tsx b/src/features/emoji/components/emoji-picker-dropdown.tsx
similarity index 100%
rename from app/soapbox/features/emoji/components/emoji-picker-dropdown.tsx
rename to src/features/emoji/components/emoji-picker-dropdown.tsx
diff --git a/app/soapbox/features/emoji/components/emoji-picker.tsx b/src/features/emoji/components/emoji-picker.tsx
similarity index 100%
rename from app/soapbox/features/emoji/components/emoji-picker.tsx
rename to src/features/emoji/components/emoji-picker.tsx
diff --git a/app/soapbox/features/emoji/containers/emoji-picker-dropdown-container.tsx b/src/features/emoji/containers/emoji-picker-dropdown-container.tsx
similarity index 100%
rename from app/soapbox/features/emoji/containers/emoji-picker-dropdown-container.tsx
rename to src/features/emoji/containers/emoji-picker-dropdown-container.tsx
diff --git a/app/soapbox/features/emoji/data.ts b/src/features/emoji/data.ts
similarity index 100%
rename from app/soapbox/features/emoji/data.ts
rename to src/features/emoji/data.ts
diff --git a/app/soapbox/features/emoji/index.ts b/src/features/emoji/index.ts
similarity index 100%
rename from app/soapbox/features/emoji/index.ts
rename to src/features/emoji/index.ts
diff --git a/app/soapbox/features/emoji/mapping.ts b/src/features/emoji/mapping.ts
similarity index 100%
rename from app/soapbox/features/emoji/mapping.ts
rename to src/features/emoji/mapping.ts
diff --git a/app/soapbox/features/emoji/search.ts b/src/features/emoji/search.ts
similarity index 100%
rename from app/soapbox/features/emoji/search.ts
rename to src/features/emoji/search.ts
diff --git a/app/soapbox/features/event/components/event-action-button.tsx b/src/features/event/components/event-action-button.tsx
similarity index 100%
rename from app/soapbox/features/event/components/event-action-button.tsx
rename to src/features/event/components/event-action-button.tsx
diff --git a/app/soapbox/features/event/components/event-date.tsx b/src/features/event/components/event-date.tsx
similarity index 100%
rename from app/soapbox/features/event/components/event-date.tsx
rename to src/features/event/components/event-date.tsx
diff --git a/app/soapbox/features/event/components/event-header.tsx b/src/features/event/components/event-header.tsx
similarity index 100%
rename from app/soapbox/features/event/components/event-header.tsx
rename to src/features/event/components/event-header.tsx
diff --git a/app/soapbox/features/event/event-discussion.tsx b/src/features/event/event-discussion.tsx
similarity index 100%
rename from app/soapbox/features/event/event-discussion.tsx
rename to src/features/event/event-discussion.tsx
diff --git a/app/soapbox/features/event/event-information.tsx b/src/features/event/event-information.tsx
similarity index 100%
rename from app/soapbox/features/event/event-information.tsx
rename to src/features/event/event-information.tsx
diff --git a/app/soapbox/features/events/components/event-carousel.tsx b/src/features/events/components/event-carousel.tsx
similarity index 100%
rename from app/soapbox/features/events/components/event-carousel.tsx
rename to src/features/events/components/event-carousel.tsx
diff --git a/app/soapbox/features/events/index.tsx b/src/features/events/index.tsx
similarity index 100%
rename from app/soapbox/features/events/index.tsx
rename to src/features/events/index.tsx
diff --git a/app/soapbox/features/export-data/components/csv-exporter.tsx b/src/features/export-data/components/csv-exporter.tsx
similarity index 100%
rename from app/soapbox/features/export-data/components/csv-exporter.tsx
rename to src/features/export-data/components/csv-exporter.tsx
diff --git a/app/soapbox/features/export-data/index.tsx b/src/features/export-data/index.tsx
similarity index 100%
rename from app/soapbox/features/export-data/index.tsx
rename to src/features/export-data/index.tsx
diff --git a/app/soapbox/features/external-login/components/external-login-form.tsx b/src/features/external-login/components/external-login-form.tsx
similarity index 100%
rename from app/soapbox/features/external-login/components/external-login-form.tsx
rename to src/features/external-login/components/external-login-form.tsx
diff --git a/src/features/external-login/index.tsx b/src/features/external-login/index.tsx
new file mode 100644
index 000000000..507797f9a
--- /dev/null
+++ b/src/features/external-login/index.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import { FormattedMessage } from 'react-intl';
+
+import { BigCard } from 'soapbox/components/big-card';
+
+import ExternalLoginForm from './components/external-login-form';
+
+/** Page for logging into a remote instance */
+const ExternalLoginPage: React.FC = () => {
+ return (
+ }>
+
+
+ );
+};
+
+export default ExternalLoginPage;
diff --git a/app/soapbox/features/favourited-statuses/index.tsx b/src/features/favourited-statuses/index.tsx
similarity index 100%
rename from app/soapbox/features/favourited-statuses/index.tsx
rename to src/features/favourited-statuses/index.tsx
diff --git a/app/soapbox/features/federation-restrictions/components/instance-restrictions.tsx b/src/features/federation-restrictions/components/instance-restrictions.tsx
similarity index 99%
rename from app/soapbox/features/federation-restrictions/components/instance-restrictions.tsx
rename to src/features/federation-restrictions/components/instance-restrictions.tsx
index 153cba1a7..f4ae397cd 100644
--- a/app/soapbox/features/federation-restrictions/components/instance-restrictions.tsx
+++ b/src/features/federation-restrictions/components/instance-restrictions.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import React from 'react';
import { FormattedMessage } from 'react-intl';
diff --git a/app/soapbox/features/federation-restrictions/components/restricted-instance.tsx b/src/features/federation-restrictions/components/restricted-instance.tsx
similarity index 100%
rename from app/soapbox/features/federation-restrictions/components/restricted-instance.tsx
rename to src/features/federation-restrictions/components/restricted-instance.tsx
diff --git a/app/soapbox/features/federation-restrictions/index.tsx b/src/features/federation-restrictions/index.tsx
similarity index 100%
rename from app/soapbox/features/federation-restrictions/index.tsx
rename to src/features/federation-restrictions/index.tsx
diff --git a/app/soapbox/features/feed-filtering/__tests__/feed-carousel.test.tsx b/src/features/feed-filtering/__tests__/feed-carousel.test.tsx
similarity index 97%
rename from app/soapbox/features/feed-filtering/__tests__/feed-carousel.test.tsx
rename to src/features/feed-filtering/__tests__/feed-carousel.test.tsx
index dedabb371..b16f00367 100644
--- a/app/soapbox/features/feed-filtering/__tests__/feed-carousel.test.tsx
+++ b/src/features/feed-filtering/__tests__/feed-carousel.test.tsx
@@ -7,7 +7,7 @@ import { __stub } from 'soapbox/api';
import { render, screen, waitFor } from '../../../jest/test-helpers';
import FeedCarousel from '../feed-carousel';
-jest.mock('../../../hooks/useDimensions', () => ({
+vi.mock('../../../hooks/useDimensions', () => ({
useDimensions: () => [{ scrollWidth: 190 }, null, { width: 300 }],
}));
@@ -129,7 +129,7 @@ describe(' ', () => {
]);
});
- Element.prototype.getBoundingClientRect = jest.fn(() => {
+ Element.prototype.getBoundingClientRect = vi.fn(() => {
return {
width: 200,
height: 120,
diff --git a/app/soapbox/features/feed-filtering/feed-carousel.tsx b/src/features/feed-filtering/feed-carousel.tsx
similarity index 100%
rename from app/soapbox/features/feed-filtering/feed-carousel.tsx
rename to src/features/feed-filtering/feed-carousel.tsx
diff --git a/app/soapbox/features/feed-suggestions/feed-suggestions.tsx b/src/features/feed-suggestions/feed-suggestions.tsx
similarity index 100%
rename from app/soapbox/features/feed-suggestions/feed-suggestions.tsx
rename to src/features/feed-suggestions/feed-suggestions.tsx
diff --git a/app/soapbox/features/filters/edit-filter.tsx b/src/features/filters/edit-filter.tsx
similarity index 100%
rename from app/soapbox/features/filters/edit-filter.tsx
rename to src/features/filters/edit-filter.tsx
diff --git a/app/soapbox/features/filters/index.tsx b/src/features/filters/index.tsx
similarity index 100%
rename from app/soapbox/features/filters/index.tsx
rename to src/features/filters/index.tsx
diff --git a/app/soapbox/features/follow-recommendations/index.tsx b/src/features/follow-recommendations/index.tsx
similarity index 100%
rename from app/soapbox/features/follow-recommendations/index.tsx
rename to src/features/follow-recommendations/index.tsx
diff --git a/app/soapbox/features/follow-requests/components/account-authorize.tsx b/src/features/follow-requests/components/account-authorize.tsx
similarity index 100%
rename from app/soapbox/features/follow-requests/components/account-authorize.tsx
rename to src/features/follow-requests/components/account-authorize.tsx
diff --git a/app/soapbox/features/follow-requests/index.tsx b/src/features/follow-requests/index.tsx
similarity index 100%
rename from app/soapbox/features/follow-requests/index.tsx
rename to src/features/follow-requests/index.tsx
diff --git a/app/soapbox/features/followed-tags/index.tsx b/src/features/followed-tags/index.tsx
similarity index 100%
rename from app/soapbox/features/followed-tags/index.tsx
rename to src/features/followed-tags/index.tsx
diff --git a/app/soapbox/features/followers/index.tsx b/src/features/followers/index.tsx
similarity index 100%
rename from app/soapbox/features/followers/index.tsx
rename to src/features/followers/index.tsx
diff --git a/app/soapbox/features/following/index.tsx b/src/features/following/index.tsx
similarity index 100%
rename from app/soapbox/features/following/index.tsx
rename to src/features/following/index.tsx
diff --git a/app/soapbox/features/forms/index.tsx b/src/features/forms/index.tsx
similarity index 100%
rename from app/soapbox/features/forms/index.tsx
rename to src/features/forms/index.tsx
diff --git a/app/soapbox/features/generic-not-found/index.tsx b/src/features/generic-not-found/index.tsx
similarity index 100%
rename from app/soapbox/features/generic-not-found/index.tsx
rename to src/features/generic-not-found/index.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-action-button.test.tsx b/src/features/group/components/__tests__/group-action-button.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-action-button.test.tsx
rename to src/features/group/components/__tests__/group-action-button.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-header.test.tsx b/src/features/group/components/__tests__/group-header.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-header.test.tsx
rename to src/features/group/components/__tests__/group-header.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-member-count.test.tsx b/src/features/group/components/__tests__/group-member-count.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-member-count.test.tsx
rename to src/features/group/components/__tests__/group-member-count.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-member-list-item.test.tsx b/src/features/group/components/__tests__/group-member-list-item.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-member-list-item.test.tsx
rename to src/features/group/components/__tests__/group-member-list-item.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-options-button.test.tsx b/src/features/group/components/__tests__/group-options-button.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-options-button.test.tsx
rename to src/features/group/components/__tests__/group-options-button.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-privacy.test.tsx b/src/features/group/components/__tests__/group-privacy.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-privacy.test.tsx
rename to src/features/group/components/__tests__/group-privacy.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-relationship.test.tsx b/src/features/group/components/__tests__/group-relationship.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-relationship.test.tsx
rename to src/features/group/components/__tests__/group-relationship.test.tsx
diff --git a/app/soapbox/features/group/components/__tests__/group-tag-list-item.test.tsx b/src/features/group/components/__tests__/group-tag-list-item.test.tsx
similarity index 100%
rename from app/soapbox/features/group/components/__tests__/group-tag-list-item.test.tsx
rename to src/features/group/components/__tests__/group-tag-list-item.test.tsx
diff --git a/app/soapbox/features/group/components/group-action-button.tsx b/src/features/group/components/group-action-button.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-action-button.tsx
rename to src/features/group/components/group-action-button.tsx
diff --git a/app/soapbox/features/group/components/group-header-image.tsx b/src/features/group/components/group-header-image.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-header-image.tsx
rename to src/features/group/components/group-header-image.tsx
diff --git a/app/soapbox/features/group/components/group-header.tsx b/src/features/group/components/group-header.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-header.tsx
rename to src/features/group/components/group-header.tsx
diff --git a/app/soapbox/features/group/components/group-member-count.tsx b/src/features/group/components/group-member-count.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-member-count.tsx
rename to src/features/group/components/group-member-count.tsx
diff --git a/app/soapbox/features/group/components/group-member-list-item.tsx b/src/features/group/components/group-member-list-item.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-member-list-item.tsx
rename to src/features/group/components/group-member-list-item.tsx
diff --git a/app/soapbox/features/group/components/group-options-button.tsx b/src/features/group/components/group-options-button.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-options-button.tsx
rename to src/features/group/components/group-options-button.tsx
diff --git a/app/soapbox/features/group/components/group-privacy.tsx b/src/features/group/components/group-privacy.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-privacy.tsx
rename to src/features/group/components/group-privacy.tsx
diff --git a/app/soapbox/features/group/components/group-relationship.tsx b/src/features/group/components/group-relationship.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-relationship.tsx
rename to src/features/group/components/group-relationship.tsx
diff --git a/app/soapbox/features/group/components/group-tag-list-item.tsx b/src/features/group/components/group-tag-list-item.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-tag-list-item.tsx
rename to src/features/group/components/group-tag-list-item.tsx
diff --git a/app/soapbox/features/group/components/group-tags-field.tsx b/src/features/group/components/group-tags-field.tsx
similarity index 100%
rename from app/soapbox/features/group/components/group-tags-field.tsx
rename to src/features/group/components/group-tags-field.tsx
diff --git a/app/soapbox/features/group/edit-group.tsx b/src/features/group/edit-group.tsx
similarity index 100%
rename from app/soapbox/features/group/edit-group.tsx
rename to src/features/group/edit-group.tsx
diff --git a/app/soapbox/features/group/group-blocked-members.tsx b/src/features/group/group-blocked-members.tsx
similarity index 100%
rename from app/soapbox/features/group/group-blocked-members.tsx
rename to src/features/group/group-blocked-members.tsx
diff --git a/app/soapbox/features/group/group-gallery.tsx b/src/features/group/group-gallery.tsx
similarity index 100%
rename from app/soapbox/features/group/group-gallery.tsx
rename to src/features/group/group-gallery.tsx
diff --git a/app/soapbox/features/group/group-members.tsx b/src/features/group/group-members.tsx
similarity index 100%
rename from app/soapbox/features/group/group-members.tsx
rename to src/features/group/group-members.tsx
diff --git a/app/soapbox/features/group/group-membership-requests.tsx b/src/features/group/group-membership-requests.tsx
similarity index 100%
rename from app/soapbox/features/group/group-membership-requests.tsx
rename to src/features/group/group-membership-requests.tsx
diff --git a/app/soapbox/features/group/group-tag-timeline.tsx b/src/features/group/group-tag-timeline.tsx
similarity index 100%
rename from app/soapbox/features/group/group-tag-timeline.tsx
rename to src/features/group/group-tag-timeline.tsx
diff --git a/app/soapbox/features/group/group-tags.tsx b/src/features/group/group-tags.tsx
similarity index 100%
rename from app/soapbox/features/group/group-tags.tsx
rename to src/features/group/group-tags.tsx
diff --git a/app/soapbox/features/group/group-timeline.tsx b/src/features/group/group-timeline.tsx
similarity index 100%
rename from app/soapbox/features/group/group-timeline.tsx
rename to src/features/group/group-timeline.tsx
diff --git a/app/soapbox/features/group/manage-group.tsx b/src/features/group/manage-group.tsx
similarity index 100%
rename from app/soapbox/features/group/manage-group.tsx
rename to src/features/group/manage-group.tsx
diff --git a/app/soapbox/features/groups/__tests__/discover.test.tsx b/src/features/groups/__tests__/discover.test.tsx
similarity index 97%
rename from app/soapbox/features/groups/__tests__/discover.test.tsx
rename to src/features/groups/__tests__/discover.test.tsx
index 485cbc72e..dc5d62280 100644
--- a/app/soapbox/features/groups/__tests__/discover.test.tsx
+++ b/src/features/groups/__tests__/discover.test.tsx
@@ -7,7 +7,7 @@ import { normalizeInstance } from 'soapbox/normalizers';
import Discover from '../discover';
-jest.mock('../../../hooks/useDimensions', () => ({
+vi.mock('../../../hooks/useDimensions', () => ({
useDimensions: () => [{ scrollWidth: 190 }, null, { width: 300 }],
}));
diff --git a/app/soapbox/features/groups/__tests__/pending-requests.test.tsx b/src/features/groups/__tests__/pending-requests.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/__tests__/pending-requests.test.tsx
rename to src/features/groups/__tests__/pending-requests.test.tsx
diff --git a/app/soapbox/features/groups/components/__tests__/pending-group-rows.test.tsx b/src/features/groups/components/__tests__/pending-group-rows.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/__tests__/pending-group-rows.test.tsx
rename to src/features/groups/components/__tests__/pending-group-rows.test.tsx
diff --git a/app/soapbox/features/groups/components/discover/__tests__/group-grid-item.test.tsx b/src/features/groups/components/discover/__tests__/group-grid-item.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/__tests__/group-grid-item.test.tsx
rename to src/features/groups/components/discover/__tests__/group-grid-item.test.tsx
diff --git a/app/soapbox/features/groups/components/discover/__tests__/group-list-item.test.tsx b/src/features/groups/components/discover/__tests__/group-list-item.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/__tests__/group-list-item.test.tsx
rename to src/features/groups/components/discover/__tests__/group-list-item.test.tsx
diff --git a/app/soapbox/features/groups/components/discover/__tests__/layout-buttons.test.tsx b/src/features/groups/components/discover/__tests__/layout-buttons.test.tsx
similarity index 95%
rename from app/soapbox/features/groups/components/discover/__tests__/layout-buttons.test.tsx
rename to src/features/groups/components/discover/__tests__/layout-buttons.test.tsx
index c6d1ea514..c183ca7bd 100644
--- a/app/soapbox/features/groups/components/discover/__tests__/layout-buttons.test.tsx
+++ b/src/features/groups/components/discover/__tests__/layout-buttons.test.tsx
@@ -8,7 +8,7 @@ import LayoutButtons, { GroupLayout } from '../layout-buttons';
describe(' {
describe('when LIST view', () => {
it('should render correctly', async () => {
- const onSelectFn = jest.fn();
+ const onSelectFn = vi.fn();
const user = userEvent.setup();
render( );
@@ -23,7 +23,7 @@ describe(' {
describe('when GRID view', () => {
it('should render correctly', async () => {
- const onSelectFn = jest.fn();
+ const onSelectFn = vi.fn();
const user = userEvent.setup();
render( );
diff --git a/app/soapbox/features/groups/components/discover/__tests__/tag-list-item.test.tsx b/src/features/groups/components/discover/__tests__/tag-list-item.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/__tests__/tag-list-item.test.tsx
rename to src/features/groups/components/discover/__tests__/tag-list-item.test.tsx
diff --git a/app/soapbox/features/groups/components/discover/group-grid-item.tsx b/src/features/groups/components/discover/group-grid-item.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/group-grid-item.tsx
rename to src/features/groups/components/discover/group-grid-item.tsx
diff --git a/app/soapbox/features/groups/components/discover/group-list-item.tsx b/src/features/groups/components/discover/group-list-item.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/group-list-item.tsx
rename to src/features/groups/components/discover/group-list-item.tsx
diff --git a/app/soapbox/features/groups/components/discover/layout-buttons.tsx b/src/features/groups/components/discover/layout-buttons.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/layout-buttons.tsx
rename to src/features/groups/components/discover/layout-buttons.tsx
diff --git a/app/soapbox/features/groups/components/discover/popular-groups.tsx b/src/features/groups/components/discover/popular-groups.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/popular-groups.tsx
rename to src/features/groups/components/discover/popular-groups.tsx
diff --git a/app/soapbox/features/groups/components/discover/popular-tags.tsx b/src/features/groups/components/discover/popular-tags.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/popular-tags.tsx
rename to src/features/groups/components/discover/popular-tags.tsx
diff --git a/app/soapbox/features/groups/components/discover/search/__tests__/blankslate.test.tsx b/src/features/groups/components/discover/search/__tests__/blankslate.test.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/search/__tests__/blankslate.test.tsx
rename to src/features/groups/components/discover/search/__tests__/blankslate.test.tsx
diff --git a/app/soapbox/features/groups/components/discover/search/__tests__/recent-searches.test.tsx b/src/features/groups/components/discover/search/__tests__/recent-searches.test.tsx
similarity index 91%
rename from app/soapbox/features/groups/components/discover/search/__tests__/recent-searches.test.tsx
rename to src/features/groups/components/discover/search/__tests__/recent-searches.test.tsx
index 35357e3b6..3bf350112 100644
--- a/app/soapbox/features/groups/components/discover/search/__tests__/recent-searches.test.tsx
+++ b/src/features/groups/components/discover/search/__tests__/recent-searches.test.tsx
@@ -48,7 +48,7 @@ test.skip('skip', () => {});
// });
// it('should render the recent searches', async () => {
-// renderApp( );
+// renderApp( );
// await waitFor(() => {
// expect(screen.getByTestId('recent-search')).toBeInTheDocument();
@@ -56,7 +56,7 @@ test.skip('skip', () => {});
// });
// it('should support clearing recent searches', async () => {
-// renderApp( );
+// renderApp( );
// expect(groupSearchHistory.get(userId)).toHaveLength(1);
// await userEvent.click(screen.getByTestId('clear-recent-searches'));
@@ -64,7 +64,7 @@ test.skip('skip', () => {});
// });
// it('should support click events on the results', async () => {
-// const handler = jest.fn();
+// const handler = vi.fn();
// renderApp( );
// expect(handler.mock.calls.length).toEqual(0);
// await userEvent.click(screen.getByTestId('recent-search-result'));
@@ -74,7 +74,7 @@ test.skip('skip', () => {});
// describe('without recent searches', () => {
// it('should render the blankslate', async () => {
-// renderApp( );
+// renderApp( );
// expect(screen.getByTestId('recent-searches-blankslate')).toBeInTheDocument();
// });
diff --git a/app/soapbox/features/groups/components/discover/search/__tests__/results.test.tsx b/src/features/groups/components/discover/search/__tests__/results.test.tsx
similarity index 98%
rename from app/soapbox/features/groups/components/discover/search/__tests__/results.test.tsx
rename to src/features/groups/components/discover/search/__tests__/results.test.tsx
index bc310c85b..b53276bc3 100644
--- a/app/soapbox/features/groups/components/discover/search/__tests__/results.test.tsx
+++ b/src/features/groups/components/discover/search/__tests__/results.test.tsx
@@ -39,7 +39,7 @@ const groupSearchResult = {
groups: [buildGroup()],
hasNextPage: false,
isFetching: false,
- fetchNextPage: jest.fn(),
+ fetchNextPage: vi.fn(),
} as any;
describe(' ', () => {
diff --git a/app/soapbox/features/groups/components/discover/search/__tests__/search.test.tsx b/src/features/groups/components/discover/search/__tests__/search.test.tsx
similarity index 86%
rename from app/soapbox/features/groups/components/discover/search/__tests__/search.test.tsx
rename to src/features/groups/components/discover/search/__tests__/search.test.tsx
index 0c19eba01..4cf062227 100644
--- a/app/soapbox/features/groups/components/discover/search/__tests__/search.test.tsx
+++ b/src/features/groups/components/discover/search/__tests__/search.test.tsx
@@ -24,7 +24,7 @@ describe(' ', () => {
});
it('should render the blankslate', async () => {
- renderApp( );
+ renderApp( );
await waitFor(() => {
expect(screen.getByTestId('no-results')).toBeInTheDocument();
@@ -45,7 +45,7 @@ describe(' ', () => {
});
it('should render the results', async () => {
- renderApp( );
+ renderApp( );
await waitFor(() => {
expect(screen.getByTestId('results')).toBeInTheDocument();
@@ -55,7 +55,7 @@ describe(' ', () => {
describe('before starting a search', () => {
it('should render the RecentSearches component', () => {
- renderApp( );
+ renderApp( );
expect(screen.getByTestId('recent-searches')).toBeInTheDocument();
});
diff --git a/app/soapbox/features/groups/components/discover/search/blankslate.tsx b/src/features/groups/components/discover/search/blankslate.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/search/blankslate.tsx
rename to src/features/groups/components/discover/search/blankslate.tsx
diff --git a/app/soapbox/features/groups/components/discover/search/recent-searches.tsx b/src/features/groups/components/discover/search/recent-searches.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/search/recent-searches.tsx
rename to src/features/groups/components/discover/search/recent-searches.tsx
diff --git a/app/soapbox/features/groups/components/discover/search/results.tsx b/src/features/groups/components/discover/search/results.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/search/results.tsx
rename to src/features/groups/components/discover/search/results.tsx
diff --git a/app/soapbox/features/groups/components/discover/search/search.tsx b/src/features/groups/components/discover/search/search.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/search/search.tsx
rename to src/features/groups/components/discover/search/search.tsx
diff --git a/app/soapbox/features/groups/components/discover/suggested-groups.tsx b/src/features/groups/components/discover/suggested-groups.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/suggested-groups.tsx
rename to src/features/groups/components/discover/suggested-groups.tsx
diff --git a/app/soapbox/features/groups/components/discover/tag-list-item.tsx b/src/features/groups/components/discover/tag-list-item.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/discover/tag-list-item.tsx
rename to src/features/groups/components/discover/tag-list-item.tsx
diff --git a/app/soapbox/features/groups/components/group-link-preview.tsx b/src/features/groups/components/group-link-preview.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/group-link-preview.tsx
rename to src/features/groups/components/group-link-preview.tsx
diff --git a/app/soapbox/features/groups/components/pending-groups-row.tsx b/src/features/groups/components/pending-groups-row.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/pending-groups-row.tsx
rename to src/features/groups/components/pending-groups-row.tsx
diff --git a/app/soapbox/features/groups/components/tab-bar.tsx b/src/features/groups/components/tab-bar.tsx
similarity index 100%
rename from app/soapbox/features/groups/components/tab-bar.tsx
rename to src/features/groups/components/tab-bar.tsx
diff --git a/app/soapbox/features/groups/discover.tsx b/src/features/groups/discover.tsx
similarity index 100%
rename from app/soapbox/features/groups/discover.tsx
rename to src/features/groups/discover.tsx
diff --git a/app/soapbox/features/groups/index.tsx b/src/features/groups/index.tsx
similarity index 100%
rename from app/soapbox/features/groups/index.tsx
rename to src/features/groups/index.tsx
diff --git a/app/soapbox/features/groups/pending-requests.tsx b/src/features/groups/pending-requests.tsx
similarity index 100%
rename from app/soapbox/features/groups/pending-requests.tsx
rename to src/features/groups/pending-requests.tsx
diff --git a/app/soapbox/features/groups/popular.tsx b/src/features/groups/popular.tsx
similarity index 100%
rename from app/soapbox/features/groups/popular.tsx
rename to src/features/groups/popular.tsx
diff --git a/app/soapbox/features/groups/suggested.tsx b/src/features/groups/suggested.tsx
similarity index 100%
rename from app/soapbox/features/groups/suggested.tsx
rename to src/features/groups/suggested.tsx
diff --git a/app/soapbox/features/groups/tag.tsx b/src/features/groups/tag.tsx
similarity index 100%
rename from app/soapbox/features/groups/tag.tsx
rename to src/features/groups/tag.tsx
diff --git a/app/soapbox/features/groups/tags.tsx b/src/features/groups/tags.tsx
similarity index 100%
rename from app/soapbox/features/groups/tags.tsx
rename to src/features/groups/tags.tsx
diff --git a/app/soapbox/features/hashtag-timeline/index.tsx b/src/features/hashtag-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/hashtag-timeline/index.tsx
rename to src/features/hashtag-timeline/index.tsx
diff --git a/app/soapbox/features/home-timeline/index.tsx b/src/features/home-timeline/index.tsx
similarity index 97%
rename from app/soapbox/features/home-timeline/index.tsx
rename to src/features/home-timeline/index.tsx
index 57c19b777..7f141ad6b 100644
--- a/app/soapbox/features/home-timeline/index.tsx
+++ b/src/features/home-timeline/index.tsx
@@ -4,14 +4,12 @@ import { Link } from 'react-router-dom';
import { fetchRelationships } from 'soapbox/actions/accounts';
import { fetchSuggestionsForTimeline } from 'soapbox/actions/suggestions';
-import { expandHomeTimeline } from 'soapbox/actions/timelines';
+import { expandHomeTimeline, clearFeedAccountId } from 'soapbox/actions/timelines';
import PullToRefresh from 'soapbox/components/pull-to-refresh';
import { Column, Stack, Text } from 'soapbox/components/ui';
import Timeline from 'soapbox/features/ui/components/timeline';
import { useAppSelector, useAppDispatch, useFeatures, useInstance } from 'soapbox/hooks';
-import { clearFeedAccountId } from '../../actions/timelines';
-
const messages = defineMessages({
title: { id: 'column.home', defaultMessage: 'Home' },
});
diff --git a/app/soapbox/features/import-data/components/csv-importer.tsx b/src/features/import-data/components/csv-importer.tsx
similarity index 100%
rename from app/soapbox/features/import-data/components/csv-importer.tsx
rename to src/features/import-data/components/csv-importer.tsx
diff --git a/app/soapbox/features/import-data/index.tsx b/src/features/import-data/index.tsx
similarity index 100%
rename from app/soapbox/features/import-data/index.tsx
rename to src/features/import-data/index.tsx
diff --git a/app/soapbox/features/intentional-error/index.tsx b/src/features/intentional-error/index.tsx
similarity index 100%
rename from app/soapbox/features/intentional-error/index.tsx
rename to src/features/intentional-error/index.tsx
diff --git a/src/features/landing-page/__tests__/landing-page.test.tsx b/src/features/landing-page/__tests__/landing-page.test.tsx
new file mode 100644
index 000000000..bbc96deeb
--- /dev/null
+++ b/src/features/landing-page/__tests__/landing-page.test.tsx
@@ -0,0 +1,40 @@
+import React from 'react';
+
+import { rememberInstance } from 'soapbox/actions/instance';
+import { render, screen, rootReducer } from 'soapbox/jest/test-helpers';
+
+import LandingPage from '..';
+
+describe(' ', () => {
+ it('renders a RegistrationForm for an open Pleroma instance', () => {
+
+ const state = rootReducer(undefined, {
+ type: rememberInstance.fulfilled.type,
+ payload: {
+ version: '2.7.2 (compatible; Pleroma 2.3.0)',
+ registrations: true,
+ },
+ });
+
+ render( , undefined, state);
+
+ expect(screen.queryByTestId('registrations-open')).toBeInTheDocument();
+ expect(screen.queryByTestId('registrations-closed')).not.toBeInTheDocument();
+ });
+
+ it('renders "closed" message for a closed Pleroma instance', () => {
+
+ const state = rootReducer(undefined, {
+ type: rememberInstance.fulfilled.type,
+ payload: {
+ version: '2.7.2 (compatible; Pleroma 2.3.0)',
+ registrations: false,
+ },
+ });
+
+ render( , undefined, state);
+
+ expect(screen.queryByTestId('registrations-closed')).toBeInTheDocument();
+ expect(screen.queryByTestId('registrations-open')).not.toBeInTheDocument();
+ });
+});
diff --git a/app/soapbox/features/landing-page/index.tsx b/src/features/landing-page/index.tsx
similarity index 76%
rename from app/soapbox/features/landing-page/index.tsx
rename to src/features/landing-page/index.tsx
index ce1180063..a31d7d313 100644
--- a/app/soapbox/features/landing-page/index.tsx
+++ b/src/features/landing-page/index.tsx
@@ -4,16 +4,14 @@ import { FormattedMessage } from 'react-intl';
import { prepareRequest } from 'soapbox/actions/consumer-auth';
import Markup from 'soapbox/components/markup';
import { Button, Card, CardBody, Stack, Text } from 'soapbox/components/ui';
-import VerificationBadge from 'soapbox/components/verification-badge';
import RegistrationForm from 'soapbox/features/auth-login/components/registration-form';
-import { useAppDispatch, useFeatures, useInstance, useRegistrationStatus, useSoapboxConfig } from 'soapbox/hooks';
+import { useAppDispatch, useFeatures, useInstance, useSoapboxConfig } from 'soapbox/hooks';
import { capitalize } from 'soapbox/utils/strings';
const LandingPage = () => {
const dispatch = useAppDispatch();
const features = useFeatures();
const soapboxConfig = useSoapboxConfig();
- const { pepeEnabled, pepeOpen } = useRegistrationStatus();
const instance = useInstance();
/** Registrations are closed */
@@ -65,34 +63,10 @@ const LandingPage = () => {
);
};
- /** Pepe API registrations are open */
- const renderPepe = () => {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
- };
-
// Render registration flow depending on features
const renderBody = () => {
if (soapboxConfig.authProvider) {
return renderProvider();
- } else if (pepeEnabled && pepeOpen) {
- return renderPepe();
} else if (features.accountCreation && instance.registrations) {
return renderOpen();
} else {
diff --git a/app/soapbox/features/list-adder/components/list.tsx b/src/features/list-adder/components/list.tsx
similarity index 100%
rename from app/soapbox/features/list-adder/components/list.tsx
rename to src/features/list-adder/components/list.tsx
diff --git a/app/soapbox/features/list-adder/index.tsx b/src/features/list-adder/index.tsx
similarity index 100%
rename from app/soapbox/features/list-adder/index.tsx
rename to src/features/list-adder/index.tsx
diff --git a/app/soapbox/features/list-editor/components/account.tsx b/src/features/list-editor/components/account.tsx
similarity index 100%
rename from app/soapbox/features/list-editor/components/account.tsx
rename to src/features/list-editor/components/account.tsx
diff --git a/app/soapbox/features/list-editor/components/edit-list-form.tsx b/src/features/list-editor/components/edit-list-form.tsx
similarity index 100%
rename from app/soapbox/features/list-editor/components/edit-list-form.tsx
rename to src/features/list-editor/components/edit-list-form.tsx
diff --git a/app/soapbox/features/list-editor/components/search.tsx b/src/features/list-editor/components/search.tsx
similarity index 100%
rename from app/soapbox/features/list-editor/components/search.tsx
rename to src/features/list-editor/components/search.tsx
diff --git a/app/soapbox/features/list-editor/index.tsx b/src/features/list-editor/index.tsx
similarity index 100%
rename from app/soapbox/features/list-editor/index.tsx
rename to src/features/list-editor/index.tsx
diff --git a/app/soapbox/features/list-timeline/index.tsx b/src/features/list-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/list-timeline/index.tsx
rename to src/features/list-timeline/index.tsx
diff --git a/app/soapbox/features/lists/components/new-list-form.tsx b/src/features/lists/components/new-list-form.tsx
similarity index 100%
rename from app/soapbox/features/lists/components/new-list-form.tsx
rename to src/features/lists/components/new-list-form.tsx
diff --git a/app/soapbox/features/lists/index.tsx b/src/features/lists/index.tsx
similarity index 100%
rename from app/soapbox/features/lists/index.tsx
rename to src/features/lists/index.tsx
diff --git a/app/soapbox/features/migration/index.tsx b/src/features/migration/index.tsx
similarity index 100%
rename from app/soapbox/features/migration/index.tsx
rename to src/features/migration/index.tsx
diff --git a/app/soapbox/features/mutes/components/group-list-item.tsx b/src/features/mutes/components/group-list-item.tsx
similarity index 100%
rename from app/soapbox/features/mutes/components/group-list-item.tsx
rename to src/features/mutes/components/group-list-item.tsx
diff --git a/app/soapbox/features/mutes/index.tsx b/src/features/mutes/index.tsx
similarity index 100%
rename from app/soapbox/features/mutes/index.tsx
rename to src/features/mutes/index.tsx
diff --git a/app/soapbox/features/new-status/index.tsx b/src/features/new-status/index.tsx
similarity index 100%
rename from app/soapbox/features/new-status/index.tsx
rename to src/features/new-status/index.tsx
diff --git a/app/soapbox/features/notifications/components/__tests__/notification.test.tsx b/src/features/notifications/components/__tests__/notification.test.tsx
similarity index 100%
rename from app/soapbox/features/notifications/components/__tests__/notification.test.tsx
rename to src/features/notifications/components/__tests__/notification.test.tsx
diff --git a/app/soapbox/features/notifications/components/filter-bar.tsx b/src/features/notifications/components/filter-bar.tsx
similarity index 100%
rename from app/soapbox/features/notifications/components/filter-bar.tsx
rename to src/features/notifications/components/filter-bar.tsx
diff --git a/app/soapbox/features/notifications/components/notification.tsx b/src/features/notifications/components/notification.tsx
similarity index 100%
rename from app/soapbox/features/notifications/components/notification.tsx
rename to src/features/notifications/components/notification.tsx
diff --git a/app/soapbox/features/notifications/components/setting-toggle.tsx b/src/features/notifications/components/setting-toggle.tsx
similarity index 100%
rename from app/soapbox/features/notifications/components/setting-toggle.tsx
rename to src/features/notifications/components/setting-toggle.tsx
diff --git a/app/soapbox/features/notifications/index.tsx b/src/features/notifications/index.tsx
similarity index 100%
rename from app/soapbox/features/notifications/index.tsx
rename to src/features/notifications/index.tsx
diff --git a/app/soapbox/features/onboarding/onboarding-wizard.tsx b/src/features/onboarding/onboarding-wizard.tsx
similarity index 100%
rename from app/soapbox/features/onboarding/onboarding-wizard.tsx
rename to src/features/onboarding/onboarding-wizard.tsx
diff --git a/src/features/onboarding/steps/avatar-selection-step.tsx b/src/features/onboarding/steps/avatar-selection-step.tsx
new file mode 100644
index 000000000..149d5e3e3
--- /dev/null
+++ b/src/features/onboarding/steps/avatar-selection-step.tsx
@@ -0,0 +1,119 @@
+import clsx from 'clsx';
+import React from 'react';
+import { defineMessages, FormattedMessage } from 'react-intl';
+
+import { patchMe } from 'soapbox/actions/me';
+import { BigCard } from 'soapbox/components/big-card';
+import { Avatar, Button, Icon, Spinner, Stack } from 'soapbox/components/ui';
+import { useAppDispatch, useOwnAccount } from 'soapbox/hooks';
+import toast from 'soapbox/toast';
+import { isDefaultAvatar } from 'soapbox/utils/accounts';
+import resizeImage from 'soapbox/utils/resize-image';
+
+import type { AxiosError } from 'axios';
+
+const messages = defineMessages({
+ error: { id: 'onboarding.error', defaultMessage: 'An unexpected error occurred. Please try again or skip this step.' },
+});
+
+const AvatarSelectionStep = ({ onNext }: { onNext: () => void }) => {
+ const dispatch = useAppDispatch();
+ const { account } = useOwnAccount();
+
+ const fileInput = React.useRef(null);
+ const [selectedFile, setSelectedFile] = React.useState();
+ const [isSubmitting, setSubmitting] = React.useState(false);
+ const [isDisabled, setDisabled] = React.useState(true);
+ const isDefault = account ? isDefaultAvatar(account.avatar) : false;
+
+ const openFilePicker = () => {
+ fileInput.current?.click();
+ };
+
+ const handleFileChange = (event: React.ChangeEvent) => {
+ const maxPixels = 400 * 400;
+ const rawFile = event.target.files?.item(0);
+
+ if (!rawFile) return;
+
+ resizeImage(rawFile, maxPixels).then((file) => {
+ const url = file ? URL.createObjectURL(file) : account?.avatar as string;
+
+ setSelectedFile(url);
+ setSubmitting(true);
+
+ const formData = new FormData();
+ formData.append('avatar', rawFile);
+ const credentials = dispatch(patchMe(formData));
+
+ Promise.all([credentials]).then(() => {
+ setDisabled(false);
+ setSubmitting(false);
+ onNext();
+ }).catch((error: AxiosError) => {
+ setSubmitting(false);
+ setDisabled(false);
+ setSelectedFile(null);
+
+ if (error.response?.status === 422) {
+ toast.error((error.response.data as any).error.replace('Validation failed: ', ''));
+ } else {
+ toast.error(messages.error);
+ }
+ });
+ }).catch(console.error);
+ };
+
+ return (
+ }
+ subtitle={ }
+ >
+
+
+ {account && (
+
+ )}
+
+ {isSubmitting && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+
+ )}
+
+
+ {isDisabled && (
+
+
+
+ )}
+
+
+
+ );
+};
+
+export default AvatarSelectionStep;
diff --git a/src/features/onboarding/steps/bio-step.tsx b/src/features/onboarding/steps/bio-step.tsx
new file mode 100644
index 000000000..6b2862bbb
--- /dev/null
+++ b/src/features/onboarding/steps/bio-step.tsx
@@ -0,0 +1,93 @@
+import React from 'react';
+import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
+
+import { patchMe } from 'soapbox/actions/me';
+import { BigCard } from 'soapbox/components/big-card';
+import { Button, FormGroup, Stack, Textarea } from 'soapbox/components/ui';
+import { useAppDispatch, useOwnAccount } from 'soapbox/hooks';
+import toast from 'soapbox/toast';
+
+import type { AxiosError } from 'axios';
+
+const messages = defineMessages({
+ bioPlaceholder: { id: 'onboarding.bio.placeholder', defaultMessage: 'Tell the world a little about yourself…' },
+ error: { id: 'onboarding.error', defaultMessage: 'An unexpected error occurred. Please try again or skip this step.' },
+});
+
+const BioStep = ({ onNext }: { onNext: () => void }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const { account } = useOwnAccount();
+ const [value, setValue] = React.useState(account?.source?.note ?? '');
+ const [isSubmitting, setSubmitting] = React.useState(false);
+ const [errors, setErrors] = React.useState([]);
+
+ const handleSubmit = () => {
+ setSubmitting(true);
+
+ const credentials = dispatch(patchMe({ note: value }));
+
+ Promise.all([credentials])
+ .then(() => {
+ setSubmitting(false);
+ onNext();
+ }).catch((error: AxiosError) => {
+ setSubmitting(false);
+
+ if (error.response?.status === 422) {
+ setErrors([(error.response.data as any).error.replace('Validation failed: ', '')]);
+ } else {
+ toast.error(messages.error);
+ }
+ });
+ };
+
+ return (
+ }
+ subtitle={ }
+ >
+
+
+ }
+ labelText={ }
+ errors={errors}
+ >
+ setValue(event.target.value)}
+ placeholder={intl.formatMessage(messages.bioPlaceholder)}
+ value={value}
+ maxLength={500}
+ />
+
+
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default BioStep;
diff --git a/app/soapbox/features/onboarding/steps/completed-step.tsx b/src/features/onboarding/steps/completed-step.tsx
similarity index 100%
rename from app/soapbox/features/onboarding/steps/completed-step.tsx
rename to src/features/onboarding/steps/completed-step.tsx
diff --git a/src/features/onboarding/steps/cover-photo-selection-step.tsx b/src/features/onboarding/steps/cover-photo-selection-step.tsx
new file mode 100644
index 000000000..1e1c0107b
--- /dev/null
+++ b/src/features/onboarding/steps/cover-photo-selection-step.tsx
@@ -0,0 +1,142 @@
+import clsx from 'clsx';
+import React from 'react';
+import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
+
+import { patchMe } from 'soapbox/actions/me';
+import { BigCard } from 'soapbox/components/big-card';
+import StillImage from 'soapbox/components/still-image';
+import { Avatar, Button, Icon, Spinner, Stack, Text } from 'soapbox/components/ui';
+import { useAppDispatch, useOwnAccount } from 'soapbox/hooks';
+import toast from 'soapbox/toast';
+import { isDefaultHeader } from 'soapbox/utils/accounts';
+import resizeImage from 'soapbox/utils/resize-image';
+
+import type { AxiosError } from 'axios';
+
+const messages = defineMessages({
+ header: { id: 'account.header.alt', defaultMessage: 'Profile header' },
+ error: { id: 'onboarding.error', defaultMessage: 'An unexpected error occurred. Please try again or skip this step.' },
+});
+
+const CoverPhotoSelectionStep = ({ onNext }: { onNext: () => void }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+ const { account } = useOwnAccount();
+
+ const fileInput = React.useRef(null);
+ const [selectedFile, setSelectedFile] = React.useState();
+ const [isSubmitting, setSubmitting] = React.useState(false);
+ const [isDisabled, setDisabled] = React.useState(true);
+ const isDefault = account ? isDefaultHeader(account.header) : false;
+
+ const openFilePicker = () => {
+ fileInput.current?.click();
+ };
+
+ const handleFileChange = (event: React.ChangeEvent) => {
+ const maxPixels = 1920 * 1080;
+ const rawFile = event.target.files?.item(0);
+
+ if (!rawFile) return;
+
+ resizeImage(rawFile, maxPixels).then((file) => {
+ const url = file ? URL.createObjectURL(file) : account?.header as string;
+
+ setSelectedFile(url);
+ setSubmitting(true);
+
+ const formData = new FormData();
+ formData.append('header', file);
+ const credentials = dispatch(patchMe(formData));
+
+ Promise.all([credentials]).then(() => {
+ setDisabled(false);
+ setSubmitting(false);
+ onNext();
+ }).catch((error: AxiosError) => {
+ setSubmitting(false);
+ setDisabled(false);
+ setSelectedFile(null);
+
+ if (error.response?.status === 422) {
+ toast.error((error.response.data as any).error.replace('Validation failed: ', ''));
+ } else {
+ toast.error(messages.error);
+ }
+ });
+ }).catch(console.error);
+ };
+
+ return (
+ }
+ subtitle={}
+ >
+
+
+
+ {selectedFile || account?.header && (
+
+ )}
+
+ {isSubmitting && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+ {account && (
+
+ )}
+
+
{account?.display_name}
+
@{account?.username}
+
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+
+ )}
+
+
+ {isDisabled && (
+
+
+
+ )}
+
+
+
+ );
+};
+
+export default CoverPhotoSelectionStep;
diff --git a/src/features/onboarding/steps/display-name-step.tsx b/src/features/onboarding/steps/display-name-step.tsx
new file mode 100644
index 000000000..161963942
--- /dev/null
+++ b/src/features/onboarding/steps/display-name-step.tsx
@@ -0,0 +1,101 @@
+import React from 'react';
+import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
+
+import { patchMe } from 'soapbox/actions/me';
+import { BigCard } from 'soapbox/components/big-card';
+import { Button, FormGroup, Input, Stack } from 'soapbox/components/ui';
+import { useAppDispatch, useOwnAccount } from 'soapbox/hooks';
+import toast from 'soapbox/toast';
+
+import type { AxiosError } from 'axios';
+
+const messages = defineMessages({
+ usernamePlaceholder: { id: 'onboarding.display_name.placeholder', defaultMessage: 'Eg. John Smith' },
+ error: { id: 'onboarding.error', defaultMessage: 'An unexpected error occurred. Please try again or skip this step.' },
+});
+
+const DisplayNameStep = ({ onNext }: { onNext: () => void }) => {
+ const intl = useIntl();
+ const dispatch = useAppDispatch();
+
+ const { account } = useOwnAccount();
+ const [value, setValue] = React.useState(account?.display_name || '');
+ const [isSubmitting, setSubmitting] = React.useState(false);
+ const [errors, setErrors] = React.useState([]);
+
+ const trimmedValue = value.trim();
+ const isValid = trimmedValue.length > 0;
+ const isDisabled = !isValid || value.length > 30;
+
+ const hintText = React.useMemo(() => {
+ const charsLeft = 30 - value.length;
+ const suffix = charsLeft === 1 ? 'character remaining' : 'characters remaining';
+
+ return `${charsLeft} ${suffix}`;
+ }, [value]);
+
+ const handleSubmit = () => {
+ setSubmitting(true);
+
+ const credentials = dispatch(patchMe({ display_name: value }));
+
+ Promise.all([credentials])
+ .then(() => {
+ setSubmitting(false);
+ onNext();
+ }).catch((error: AxiosError) => {
+ setSubmitting(false);
+
+ if (error.response?.status === 422) {
+ setErrors([(error.response.data as any).error.replace('Validation failed: ', '')]);
+ } else {
+ toast.error(messages.error);
+ }
+ });
+ };
+
+ return (
+ }
+ subtitle={ }
+ >
+
+ }
+ errors={errors}
+ >
+ setValue(event.target.value)}
+ placeholder={intl.formatMessage(messages.usernamePlaceholder)}
+ type='text'
+ value={value}
+ maxLength={30}
+ />
+
+
+
+
+ {isSubmitting ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+
+
+ );
+};
+
+export default DisplayNameStep;
diff --git a/app/soapbox/features/onboarding/steps/fediverse-step.tsx b/src/features/onboarding/steps/fediverse-step.tsx
similarity index 100%
rename from app/soapbox/features/onboarding/steps/fediverse-step.tsx
rename to src/features/onboarding/steps/fediverse-step.tsx
diff --git a/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx b/src/features/onboarding/steps/suggested-accounts-step.tsx
similarity index 59%
rename from app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx
rename to src/features/onboarding/steps/suggested-accounts-step.tsx
index aac120d06..40259faef 100644
--- a/app/soapbox/features/onboarding/steps/suggested-accounts-step.tsx
+++ b/src/features/onboarding/steps/suggested-accounts-step.tsx
@@ -2,8 +2,9 @@ import debounce from 'lodash/debounce';
import React from 'react';
import { FormattedMessage } from 'react-intl';
+import { BigCard } from 'soapbox/components/big-card';
import ScrollableList from 'soapbox/components/scrollable-list';
-import { Button, Card, CardBody, Stack, Text } from 'soapbox/components/ui';
+import { Button, Stack, Text } from 'soapbox/components/ui';
import AccountContainer from 'soapbox/containers/account-container';
import { useOnboardingSuggestions } from 'soapbox/queries/suggestions';
@@ -66,43 +67,28 @@ const SuggestedAccountsStep = ({ onNext }: { onNext: () => void }) => {
};
return (
-
-
-
-
-
-
-
-
+ }
+ subtitle={ }
+ >
+ {renderBody()}
-
-
-
-
-
+
+
+
+
+
- {renderBody()}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
);
};
diff --git a/app/soapbox/features/pinned-statuses/index.tsx b/src/features/pinned-statuses/index.tsx
similarity index 100%
rename from app/soapbox/features/pinned-statuses/index.tsx
rename to src/features/pinned-statuses/index.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-account.tsx b/src/features/placeholder/components/placeholder-account.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-account.tsx
rename to src/features/placeholder/components/placeholder-account.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-avatar.tsx b/src/features/placeholder/components/placeholder-avatar.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-avatar.tsx
rename to src/features/placeholder/components/placeholder-avatar.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-card.tsx b/src/features/placeholder/components/placeholder-card.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-card.tsx
rename to src/features/placeholder/components/placeholder-card.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-chat-message.tsx b/src/features/placeholder/components/placeholder-chat-message.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-chat-message.tsx
rename to src/features/placeholder/components/placeholder-chat-message.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-chat.tsx b/src/features/placeholder/components/placeholder-chat.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-chat.tsx
rename to src/features/placeholder/components/placeholder-chat.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-display-name.tsx b/src/features/placeholder/components/placeholder-display-name.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-display-name.tsx
rename to src/features/placeholder/components/placeholder-display-name.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-event-header.tsx b/src/features/placeholder/components/placeholder-event-header.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-event-header.tsx
rename to src/features/placeholder/components/placeholder-event-header.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-event-preview.tsx b/src/features/placeholder/components/placeholder-event-preview.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-event-preview.tsx
rename to src/features/placeholder/components/placeholder-event-preview.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-group-card.tsx b/src/features/placeholder/components/placeholder-group-card.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-group-card.tsx
rename to src/features/placeholder/components/placeholder-group-card.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-group-discover.tsx b/src/features/placeholder/components/placeholder-group-discover.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-group-discover.tsx
rename to src/features/placeholder/components/placeholder-group-discover.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-group-search.tsx b/src/features/placeholder/components/placeholder-group-search.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-group-search.tsx
rename to src/features/placeholder/components/placeholder-group-search.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-hashtag.tsx b/src/features/placeholder/components/placeholder-hashtag.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-hashtag.tsx
rename to src/features/placeholder/components/placeholder-hashtag.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-material-status.tsx b/src/features/placeholder/components/placeholder-material-status.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-material-status.tsx
rename to src/features/placeholder/components/placeholder-material-status.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-media-gallery.tsx b/src/features/placeholder/components/placeholder-media-gallery.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-media-gallery.tsx
rename to src/features/placeholder/components/placeholder-media-gallery.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-notification.tsx b/src/features/placeholder/components/placeholder-notification.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-notification.tsx
rename to src/features/placeholder/components/placeholder-notification.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-sidebar-suggestions.tsx b/src/features/placeholder/components/placeholder-sidebar-suggestions.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-sidebar-suggestions.tsx
rename to src/features/placeholder/components/placeholder-sidebar-suggestions.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-sidebar-trends.tsx b/src/features/placeholder/components/placeholder-sidebar-trends.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-sidebar-trends.tsx
rename to src/features/placeholder/components/placeholder-sidebar-trends.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-status-content.tsx b/src/features/placeholder/components/placeholder-status-content.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-status-content.tsx
rename to src/features/placeholder/components/placeholder-status-content.tsx
diff --git a/app/soapbox/features/placeholder/components/placeholder-status.tsx b/src/features/placeholder/components/placeholder-status.tsx
similarity index 100%
rename from app/soapbox/features/placeholder/components/placeholder-status.tsx
rename to src/features/placeholder/components/placeholder-status.tsx
diff --git a/app/soapbox/features/placeholder/utils.ts b/src/features/placeholder/utils.ts
similarity index 100%
rename from app/soapbox/features/placeholder/utils.ts
rename to src/features/placeholder/utils.ts
diff --git a/app/soapbox/features/preferences/index.tsx b/src/features/preferences/index.tsx
similarity index 97%
rename from app/soapbox/features/preferences/index.tsx
rename to src/features/preferences/index.tsx
index cd10fd45a..84f84ba43 100644
--- a/app/soapbox/features/preferences/index.tsx
+++ b/src/features/preferences/index.tsx
@@ -196,10 +196,6 @@ const Preferences = () => {
- }>
-
-
-
{features.spoilers && }>
}
diff --git a/app/soapbox/features/public-layout/components/__tests__/header.test.tsx b/src/features/public-layout/components/__tests__/header.test.tsx
similarity index 100%
rename from app/soapbox/features/public-layout/components/__tests__/header.test.tsx
rename to src/features/public-layout/components/__tests__/header.test.tsx
diff --git a/app/soapbox/features/public-layout/components/footer.tsx b/src/features/public-layout/components/footer.tsx
similarity index 100%
rename from app/soapbox/features/public-layout/components/footer.tsx
rename to src/features/public-layout/components/footer.tsx
diff --git a/app/soapbox/features/public-layout/components/header.tsx b/src/features/public-layout/components/header.tsx
similarity index 100%
rename from app/soapbox/features/public-layout/components/header.tsx
rename to src/features/public-layout/components/header.tsx
diff --git a/app/soapbox/features/public-layout/components/sonar.tsx b/src/features/public-layout/components/sonar.tsx
similarity index 100%
rename from app/soapbox/features/public-layout/components/sonar.tsx
rename to src/features/public-layout/components/sonar.tsx
diff --git a/app/soapbox/features/public-layout/index.tsx b/src/features/public-layout/index.tsx
similarity index 90%
rename from app/soapbox/features/public-layout/index.tsx
rename to src/features/public-layout/index.tsx
index 4b5801eb0..e39bb7508 100644
--- a/app/soapbox/features/public-layout/index.tsx
+++ b/src/features/public-layout/index.tsx
@@ -5,7 +5,6 @@ import LandingGradient from 'soapbox/components/landing-gradient';
import { useAppSelector } from 'soapbox/hooks';
import { isStandalone } from 'soapbox/utils/state';
-import AboutPage from '../about';
import LandingPage from '../landing-page';
import Footer from './components/footer';
@@ -29,7 +28,6 @@ const PublicLayout = () => {
-
diff --git a/app/soapbox/features/public-timeline/index.tsx b/src/features/public-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/public-timeline/index.tsx
rename to src/features/public-timeline/index.tsx
diff --git a/app/soapbox/features/quotes/index.tsx b/src/features/quotes/index.tsx
similarity index 100%
rename from app/soapbox/features/quotes/index.tsx
rename to src/features/quotes/index.tsx
diff --git a/app/soapbox/features/register-invite/index.tsx b/src/features/register-invite/index.tsx
similarity index 67%
rename from app/soapbox/features/register-invite/index.tsx
rename to src/features/register-invite/index.tsx
index 763749bc8..56e4c0278 100644
--- a/app/soapbox/features/register-invite/index.tsx
+++ b/src/features/register-invite/index.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useParams } from 'react-router-dom';
-import { Stack, CardTitle, Text } from 'soapbox/components/ui';
+import { BigCard } from 'soapbox/components/big-card';
import RegistrationForm from 'soapbox/features/auth-login/components/registration-form';
import { useInstance } from 'soapbox/hooks';
@@ -23,21 +23,17 @@ const RegisterInvite: React.FC = () => {
/>
);
+ const subtitle = (
+
+ );
+
return (
-
-
-
-
-
-
-
-
-
+
-
+
);
};
diff --git a/app/soapbox/features/remote-timeline/components/pinned-hosts-picker.tsx b/src/features/remote-timeline/components/pinned-hosts-picker.tsx
similarity index 98%
rename from app/soapbox/features/remote-timeline/components/pinned-hosts-picker.tsx
rename to src/features/remote-timeline/components/pinned-hosts-picker.tsx
index c787764b2..39dfe119b 100644
--- a/app/soapbox/features/remote-timeline/components/pinned-hosts-picker.tsx
+++ b/src/features/remote-timeline/components/pinned-hosts-picker.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import React from 'react';
import { Button, HStack } from 'soapbox/components/ui';
diff --git a/app/soapbox/features/remote-timeline/index.tsx b/src/features/remote-timeline/index.tsx
similarity index 100%
rename from app/soapbox/features/remote-timeline/index.tsx
rename to src/features/remote-timeline/index.tsx
diff --git a/app/soapbox/features/reply-mentions/account.tsx b/src/features/reply-mentions/account.tsx
similarity index 100%
rename from app/soapbox/features/reply-mentions/account.tsx
rename to src/features/reply-mentions/account.tsx
diff --git a/app/soapbox/features/report/components/status-check-box.tsx b/src/features/report/components/status-check-box.tsx
similarity index 100%
rename from app/soapbox/features/report/components/status-check-box.tsx
rename to src/features/report/components/status-check-box.tsx
diff --git a/app/soapbox/features/scheduled-statuses/builder.tsx b/src/features/scheduled-statuses/builder.tsx
similarity index 100%
rename from app/soapbox/features/scheduled-statuses/builder.tsx
rename to src/features/scheduled-statuses/builder.tsx
diff --git a/app/soapbox/features/scheduled-statuses/components/scheduled-status-action-bar.tsx b/src/features/scheduled-statuses/components/scheduled-status-action-bar.tsx
similarity index 100%
rename from app/soapbox/features/scheduled-statuses/components/scheduled-status-action-bar.tsx
rename to src/features/scheduled-statuses/components/scheduled-status-action-bar.tsx
diff --git a/app/soapbox/features/scheduled-statuses/components/scheduled-status.tsx b/src/features/scheduled-statuses/components/scheduled-status.tsx
similarity index 100%
rename from app/soapbox/features/scheduled-statuses/components/scheduled-status.tsx
rename to src/features/scheduled-statuses/components/scheduled-status.tsx
diff --git a/app/soapbox/features/scheduled-statuses/index.tsx b/src/features/scheduled-statuses/index.tsx
similarity index 100%
rename from app/soapbox/features/scheduled-statuses/index.tsx
rename to src/features/scheduled-statuses/index.tsx
diff --git a/app/soapbox/features/search/index.tsx b/src/features/search/index.tsx
similarity index 100%
rename from app/soapbox/features/search/index.tsx
rename to src/features/search/index.tsx
diff --git a/app/soapbox/features/security/mfa-form.tsx b/src/features/security/mfa-form.tsx
similarity index 100%
rename from app/soapbox/features/security/mfa-form.tsx
rename to src/features/security/mfa-form.tsx
diff --git a/app/soapbox/features/security/mfa/disable-otp-form.tsx b/src/features/security/mfa/disable-otp-form.tsx
similarity index 100%
rename from app/soapbox/features/security/mfa/disable-otp-form.tsx
rename to src/features/security/mfa/disable-otp-form.tsx
diff --git a/app/soapbox/features/security/mfa/enable-otp-form.tsx b/src/features/security/mfa/enable-otp-form.tsx
similarity index 100%
rename from app/soapbox/features/security/mfa/enable-otp-form.tsx
rename to src/features/security/mfa/enable-otp-form.tsx
diff --git a/app/soapbox/features/security/mfa/otp-confirm-form.tsx b/src/features/security/mfa/otp-confirm-form.tsx
similarity index 100%
rename from app/soapbox/features/security/mfa/otp-confirm-form.tsx
rename to src/features/security/mfa/otp-confirm-form.tsx
diff --git a/app/soapbox/features/server-info/index.tsx b/src/features/server-info/index.tsx
similarity index 100%
rename from app/soapbox/features/server-info/index.tsx
rename to src/features/server-info/index.tsx
diff --git a/app/soapbox/features/settings/components/messages-settings.tsx b/src/features/settings/components/messages-settings.tsx
similarity index 100%
rename from app/soapbox/features/settings/components/messages-settings.tsx
rename to src/features/settings/components/messages-settings.tsx
diff --git a/app/soapbox/features/settings/index.tsx b/src/features/settings/index.tsx
similarity index 100%
rename from app/soapbox/features/settings/index.tsx
rename to src/features/settings/index.tsx
diff --git a/app/soapbox/features/share/index.tsx b/src/features/share/index.tsx
similarity index 100%
rename from app/soapbox/features/share/index.tsx
rename to src/features/share/index.tsx
diff --git a/app/soapbox/features/soapbox-config/components/color-picker.tsx b/src/features/soapbox-config/components/color-picker.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/color-picker.tsx
rename to src/features/soapbox-config/components/color-picker.tsx
diff --git a/app/soapbox/features/soapbox-config/components/color-with-picker.tsx b/src/features/soapbox-config/components/color-with-picker.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/color-with-picker.tsx
rename to src/features/soapbox-config/components/color-with-picker.tsx
diff --git a/app/soapbox/features/soapbox-config/components/crypto-address-input.tsx b/src/features/soapbox-config/components/crypto-address-input.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/crypto-address-input.tsx
rename to src/features/soapbox-config/components/crypto-address-input.tsx
diff --git a/app/soapbox/features/soapbox-config/components/footer-link-input.tsx b/src/features/soapbox-config/components/footer-link-input.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/footer-link-input.tsx
rename to src/features/soapbox-config/components/footer-link-input.tsx
diff --git a/app/soapbox/features/soapbox-config/components/icon-picker-dropdown.tsx b/src/features/soapbox-config/components/icon-picker-dropdown.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/icon-picker-dropdown.tsx
rename to src/features/soapbox-config/components/icon-picker-dropdown.tsx
diff --git a/app/soapbox/features/soapbox-config/components/icon-picker-menu.tsx b/src/features/soapbox-config/components/icon-picker-menu.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/icon-picker-menu.tsx
rename to src/features/soapbox-config/components/icon-picker-menu.tsx
diff --git a/app/soapbox/features/soapbox-config/components/icon-picker.tsx b/src/features/soapbox-config/components/icon-picker.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/icon-picker.tsx
rename to src/features/soapbox-config/components/icon-picker.tsx
diff --git a/app/soapbox/features/soapbox-config/components/promo-panel-input.tsx b/src/features/soapbox-config/components/promo-panel-input.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/promo-panel-input.tsx
rename to src/features/soapbox-config/components/promo-panel-input.tsx
diff --git a/app/soapbox/features/soapbox-config/components/site-preview.tsx b/src/features/soapbox-config/components/site-preview.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/components/site-preview.tsx
rename to src/features/soapbox-config/components/site-preview.tsx
diff --git a/app/soapbox/features/soapbox-config/forkawesome.json b/src/features/soapbox-config/forkawesome.json
similarity index 100%
rename from app/soapbox/features/soapbox-config/forkawesome.json
rename to src/features/soapbox-config/forkawesome.json
diff --git a/app/soapbox/features/soapbox-config/index.tsx b/src/features/soapbox-config/index.tsx
similarity index 100%
rename from app/soapbox/features/soapbox-config/index.tsx
rename to src/features/soapbox-config/index.tsx
diff --git a/app/soapbox/features/status/components/card.tsx b/src/features/status/components/card.tsx
similarity index 100%
rename from app/soapbox/features/status/components/card.tsx
rename to src/features/status/components/card.tsx
diff --git a/app/soapbox/features/status/components/detailed-status.tsx b/src/features/status/components/detailed-status.tsx
similarity index 100%
rename from app/soapbox/features/status/components/detailed-status.tsx
rename to src/features/status/components/detailed-status.tsx
diff --git a/app/soapbox/features/status/components/status-interaction-bar.tsx b/src/features/status/components/status-interaction-bar.tsx
similarity index 100%
rename from app/soapbox/features/status/components/status-interaction-bar.tsx
rename to src/features/status/components/status-interaction-bar.tsx
diff --git a/app/soapbox/features/status/components/thread-login-cta.tsx b/src/features/status/components/thread-login-cta.tsx
similarity index 100%
rename from app/soapbox/features/status/components/thread-login-cta.tsx
rename to src/features/status/components/thread-login-cta.tsx
diff --git a/app/soapbox/features/status/components/thread-status.tsx b/src/features/status/components/thread-status.tsx
similarity index 100%
rename from app/soapbox/features/status/components/thread-status.tsx
rename to src/features/status/components/thread-status.tsx
diff --git a/app/soapbox/features/status/components/thread.tsx b/src/features/status/components/thread.tsx
similarity index 98%
rename from app/soapbox/features/status/components/thread.tsx
rename to src/features/status/components/thread.tsx
index 84d71d446..b77b10e41 100644
--- a/app/soapbox/features/status/components/thread.tsx
+++ b/src/features/status/components/thread.tsx
@@ -18,13 +18,12 @@ import { Stack } from 'soapbox/components/ui';
import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder-status';
import { HotKeys } from 'soapbox/features/ui/components/hotkeys';
import PendingStatus from 'soapbox/features/ui/components/pending-status';
-import { useAppDispatch, useAppSelector, useOwnAccount, useSettings } from 'soapbox/hooks';
+import { useAppDispatch, useAppSelector, useSettings } from 'soapbox/hooks';
import { RootState } from 'soapbox/store';
import { type Account, type Status } from 'soapbox/types/entities';
import { defaultMediaVisibility, textForScreenReader } from 'soapbox/utils/status';
import DetailedStatus from './detailed-status';
-import ThreadLoginCta from './thread-login-cta';
import ThreadStatus from './thread-status';
type DisplayMedia = 'default' | 'hide_all' | 'show_all';
@@ -97,7 +96,6 @@ const Thread = (props: IThread) => {
const dispatch = useAppDispatch();
const history = useHistory();
const intl = useIntl();
- const { account: me } = useOwnAccount();
const settings = useSettings();
const displayMedia = settings.get('displayMedia') as DisplayMedia;
@@ -459,8 +457,6 @@ const Thread = (props: IThread) => {
{children}
-
- {!me && }
);
};
diff --git a/app/soapbox/features/status/containers/quoted-status-container.tsx b/src/features/status/containers/quoted-status-container.tsx
similarity index 100%
rename from app/soapbox/features/status/containers/quoted-status-container.tsx
rename to src/features/status/containers/quoted-status-container.tsx
diff --git a/app/soapbox/features/status/index.tsx b/src/features/status/index.tsx
similarity index 87%
rename from app/soapbox/features/status/index.tsx
rename to src/features/status/index.tsx
index f2b882e0a..c49d51b31 100644
--- a/app/soapbox/features/status/index.tsx
+++ b/src/features/status/index.tsx
@@ -9,12 +9,13 @@ import {
} from 'soapbox/actions/statuses';
import MissingIndicator from 'soapbox/components/missing-indicator';
import PullToRefresh from 'soapbox/components/pull-to-refresh';
-import { Column } from 'soapbox/components/ui';
+import { Column, Stack } from 'soapbox/components/ui';
import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder-status';
-import { useAppDispatch, useAppSelector } from 'soapbox/hooks';
+import { useAppDispatch, useAppSelector, useLoggedIn } from 'soapbox/hooks';
import { makeGetStatus } from 'soapbox/selectors';
import Thread from './components/thread';
+import ThreadLoginCta from './components/thread-login-cta';
const messages = defineMessages({
title: { id: 'status.title', defaultMessage: 'Post Details' },
@@ -47,6 +48,7 @@ interface IStatusDetails {
const StatusDetails: React.FC = (props) => {
const dispatch = useAppDispatch();
const intl = useIntl();
+ const { isLoggedIn } = useLoggedIn();
const getStatus = useCallback(makeGetStatus(), []);
const status = useAppSelector((state) => getStatus(state, { id: props.params.statusId }));
@@ -113,15 +115,19 @@ const StatusDetails: React.FC = (props) => {
};
return (
-
-
-
-
-
+
+
+
+
+
+
+
+ {!isLoggedIn && }
+
);
};
diff --git a/app/soapbox/features/test-timeline/index.tsx b/src/features/test-timeline/index.tsx
similarity index 95%
rename from app/soapbox/features/test-timeline/index.tsx
rename to src/features/test-timeline/index.tsx
index 136d0d324..1601dc165 100644
--- a/app/soapbox/features/test-timeline/index.tsx
+++ b/src/features/test-timeline/index.tsx
@@ -22,7 +22,6 @@ const MOCK_STATUSES: any[] = [
require('soapbox/__fixtures__/pleroma-status-vertical-video-without-metadata.json'),
require('soapbox/__fixtures__/pleroma-status-with-poll-with-emojis.json'),
require('soapbox/__fixtures__/pleroma-quote-of-quote-post.json'),
- require('soapbox/__fixtures__/truthsocial-status-with-external-video.json'),
require('soapbox/__fixtures__/truthsocial-status-in-moderation.json'),
];
diff --git a/app/soapbox/features/theme-editor/components/color.tsx b/src/features/theme-editor/components/color.tsx
similarity index 100%
rename from app/soapbox/features/theme-editor/components/color.tsx
rename to src/features/theme-editor/components/color.tsx
diff --git a/app/soapbox/features/theme-editor/components/palette.tsx b/src/features/theme-editor/components/palette.tsx
similarity index 100%
rename from app/soapbox/features/theme-editor/components/palette.tsx
rename to src/features/theme-editor/components/palette.tsx
diff --git a/app/soapbox/features/theme-editor/index.tsx b/src/features/theme-editor/index.tsx
similarity index 100%
rename from app/soapbox/features/theme-editor/index.tsx
rename to src/features/theme-editor/index.tsx
diff --git a/app/soapbox/features/ui/components/__tests__/compose-button.test.tsx b/src/features/ui/components/__tests__/compose-button.test.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/__tests__/compose-button.test.tsx
rename to src/features/ui/components/__tests__/compose-button.test.tsx
diff --git a/app/soapbox/features/ui/components/__tests__/cta-banner.test.tsx b/src/features/ui/components/__tests__/cta-banner.test.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/__tests__/cta-banner.test.tsx
rename to src/features/ui/components/__tests__/cta-banner.test.tsx
diff --git a/app/soapbox/features/ui/components/__tests__/navbar.test.tsx b/src/features/ui/components/__tests__/navbar.test.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/__tests__/navbar.test.tsx
rename to src/features/ui/components/__tests__/navbar.test.tsx
diff --git a/app/soapbox/features/ui/components/__tests__/subscribe-button.test.tsx b/src/features/ui/components/__tests__/subscribe-button.test.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/__tests__/subscribe-button.test.tsx
rename to src/features/ui/components/__tests__/subscribe-button.test.tsx
diff --git a/app/soapbox/features/ui/components/__tests__/trends-panel.test.tsx b/src/features/ui/components/__tests__/trends-panel.test.tsx
similarity index 95%
rename from app/soapbox/features/ui/components/__tests__/trends-panel.test.tsx
rename to src/features/ui/components/__tests__/trends-panel.test.tsx
index 0d203ab9b..4ec7a81b2 100644
--- a/app/soapbox/features/ui/components/__tests__/trends-panel.test.tsx
+++ b/src/features/ui/components/__tests__/trends-panel.test.tsx
@@ -1,8 +1,8 @@
import React from 'react';
import { __stub } from 'soapbox/api';
+import { queryClient, render, screen, waitFor } from 'soapbox/jest/test-helpers';
-import { queryClient, render, screen, waitFor } from '../../../../jest/test-helpers';
import TrendsPanel from '../trends-panel';
describe(' ', () => {
diff --git a/app/soapbox/features/ui/components/action-button.tsx b/src/features/ui/components/action-button.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/action-button.tsx
rename to src/features/ui/components/action-button.tsx
diff --git a/app/soapbox/features/ui/components/background-shapes.tsx b/src/features/ui/components/background-shapes.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/background-shapes.tsx
rename to src/features/ui/components/background-shapes.tsx
diff --git a/app/soapbox/features/ui/components/bundle-column-error.tsx b/src/features/ui/components/bundle-column-error.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/bundle-column-error.tsx
rename to src/features/ui/components/bundle-column-error.tsx
diff --git a/app/soapbox/features/ui/components/bundle-modal-error.tsx b/src/features/ui/components/bundle-modal-error.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/bundle-modal-error.tsx
rename to src/features/ui/components/bundle-modal-error.tsx
diff --git a/app/soapbox/features/ui/components/bundle.tsx b/src/features/ui/components/bundle.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/bundle.tsx
rename to src/features/ui/components/bundle.tsx
diff --git a/app/soapbox/features/ui/components/column-forbidden.tsx b/src/features/ui/components/column-forbidden.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/column-forbidden.tsx
rename to src/features/ui/components/column-forbidden.tsx
diff --git a/app/soapbox/features/ui/components/column-loading.tsx b/src/features/ui/components/column-loading.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/column-loading.tsx
rename to src/features/ui/components/column-loading.tsx
diff --git a/app/soapbox/features/ui/components/columns-area.tsx b/src/features/ui/components/columns-area.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/columns-area.tsx
rename to src/features/ui/components/columns-area.tsx
diff --git a/app/soapbox/features/ui/components/compose-button.tsx b/src/features/ui/components/compose-button.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/compose-button.tsx
rename to src/features/ui/components/compose-button.tsx
diff --git a/app/soapbox/features/ui/components/cta-banner.tsx b/src/features/ui/components/cta-banner.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/cta-banner.tsx
rename to src/features/ui/components/cta-banner.tsx
diff --git a/app/soapbox/features/ui/components/floating-action-button.tsx b/src/features/ui/components/floating-action-button.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/floating-action-button.tsx
rename to src/features/ui/components/floating-action-button.tsx
diff --git a/app/soapbox/features/ui/components/funding-panel.tsx b/src/features/ui/components/funding-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/funding-panel.tsx
rename to src/features/ui/components/funding-panel.tsx
diff --git a/app/soapbox/features/ui/components/group-media-panel.tsx b/src/features/ui/components/group-media-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/group-media-panel.tsx
rename to src/features/ui/components/group-media-panel.tsx
diff --git a/app/soapbox/features/ui/components/hotkeys.tsx b/src/features/ui/components/hotkeys.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/hotkeys.tsx
rename to src/features/ui/components/hotkeys.tsx
diff --git a/app/soapbox/features/ui/components/image-loader.tsx b/src/features/ui/components/image-loader.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/image-loader.tsx
rename to src/features/ui/components/image-loader.tsx
diff --git a/app/soapbox/features/ui/components/instance-info-panel.tsx b/src/features/ui/components/instance-info-panel.tsx
similarity index 99%
rename from app/soapbox/features/ui/components/instance-info-panel.tsx
rename to src/features/ui/components/instance-info-panel.tsx
index 4e2d07730..dd06665c5 100644
--- a/app/soapbox/features/ui/components/instance-info-panel.tsx
+++ b/src/features/ui/components/instance-info-panel.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import React from 'react';
import { useIntl, defineMessages } from 'react-intl';
diff --git a/app/soapbox/features/ui/components/instance-moderation-panel.tsx b/src/features/ui/components/instance-moderation-panel.tsx
similarity index 99%
rename from app/soapbox/features/ui/components/instance-moderation-panel.tsx
rename to src/features/ui/components/instance-moderation-panel.tsx
index 4143f14d4..45d31993a 100644
--- a/app/soapbox/features/ui/components/instance-moderation-panel.tsx
+++ b/src/features/ui/components/instance-moderation-panel.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import React from 'react';
import { useIntl, defineMessages, FormattedMessage } from 'react-intl';
diff --git a/app/soapbox/features/ui/components/link-footer.tsx b/src/features/ui/components/link-footer.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/link-footer.tsx
rename to src/features/ui/components/link-footer.tsx
diff --git a/app/soapbox/features/ui/components/modal-loading.tsx b/src/features/ui/components/modal-loading.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modal-loading.tsx
rename to src/features/ui/components/modal-loading.tsx
diff --git a/app/soapbox/features/ui/components/modal-root.tsx b/src/features/ui/components/modal-root.tsx
similarity index 98%
rename from app/soapbox/features/ui/components/modal-root.tsx
rename to src/features/ui/components/modal-root.tsx
index 86d1b55cc..f43e2ce03 100644
--- a/app/soapbox/features/ui/components/modal-root.tsx
+++ b/src/features/ui/components/modal-root.tsx
@@ -36,7 +36,6 @@ import {
ReplyMentionsModal,
ReportModal,
UnauthorizedModal,
- VerifySmsModal,
VideoModal,
} from 'soapbox/features/ui/util/async-components';
@@ -82,7 +81,6 @@ const MODAL_COMPONENTS = {
'REPLY_MENTIONS': ReplyMentionsModal,
'REPORT': ReportModal,
'UNAUTHORIZED': UnauthorizedModal,
- 'VERIFY_SMS': VerifySmsModal,
'VIDEO': VideoModal,
};
diff --git a/app/soapbox/features/ui/components/modals/__tests__/landing-page-modal.test.tsx b/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx
similarity index 76%
rename from app/soapbox/features/ui/components/modals/__tests__/landing-page-modal.test.tsx
rename to src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx
index aa99a7f65..b56fb6b8d 100644
--- a/app/soapbox/features/ui/components/modals/__tests__/landing-page-modal.test.tsx
+++ b/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx
@@ -7,25 +7,25 @@ import LandingPageModal from '../landing-page-modal';
describe(' ', () => {
it('successfully renders', () => {
- render( );
+ render( );
expect(screen.getByTestId('modal')).toBeInTheDocument();
});
it('doesn\'t display the signup button by default', () => {
- render( );
+ render( );
expect(screen.queryByText('Register')).not.toBeInTheDocument();
});
describe('with registrations enabled', () => {
it('displays the signup button', () => {
- render( , undefined, storeOpen);
+ render( , undefined, storeOpen);
expect(screen.getByText('Register')).toBeInTheDocument();
});
});
describe('with registrations closed, Pepe enabled', () => {
it('displays the signup button', () => {
- render( , undefined, storePepeOpen);
+ render( , undefined, storePepeOpen);
expect(screen.getByText('Register')).toBeInTheDocument();
});
});
diff --git a/app/soapbox/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx b/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx
similarity index 72%
rename from app/soapbox/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx
rename to src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx
index db5f775b4..02c3486db 100644
--- a/app/soapbox/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx
+++ b/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx
@@ -7,25 +7,25 @@ import UnauthorizedModal from '../unauthorized-modal';
describe(' ', () => {
it('successfully renders', () => {
- render( );
+ render( );
expect(screen.getByTestId('modal')).toBeInTheDocument();
});
it('doesn\'t display the signup button by default', () => {
- render( );
+ render( );
expect(screen.queryByText('Sign up')).not.toBeInTheDocument();
});
describe('with registrations enabled', () => {
it('displays the signup button', () => {
- render( , undefined, storeOpen);
+ render( , undefined, storeOpen);
expect(screen.getByText('Sign up')).toBeInTheDocument();
});
});
describe('with registrations closed, Pepe enabled', () => {
it('displays the signup button', () => {
- render( , undefined, storePepeOpen);
+ render( , undefined, storePepeOpen);
expect(screen.getByText('Sign up')).toBeInTheDocument();
});
});
diff --git a/app/soapbox/features/ui/components/modals/account-moderation-modal/account-moderation-modal.tsx b/src/features/ui/components/modals/account-moderation-modal/account-moderation-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/account-moderation-modal/account-moderation-modal.tsx
rename to src/features/ui/components/modals/account-moderation-modal/account-moderation-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/account-moderation-modal/badge-input.tsx b/src/features/ui/components/modals/account-moderation-modal/badge-input.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/account-moderation-modal/badge-input.tsx
rename to src/features/ui/components/modals/account-moderation-modal/badge-input.tsx
diff --git a/app/soapbox/features/ui/components/modals/account-moderation-modal/staff-role-picker.tsx b/src/features/ui/components/modals/account-moderation-modal/staff-role-picker.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/account-moderation-modal/staff-role-picker.tsx
rename to src/features/ui/components/modals/account-moderation-modal/staff-role-picker.tsx
diff --git a/app/soapbox/features/ui/components/modals/actions-modal.tsx b/src/features/ui/components/modals/actions-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/actions-modal.tsx
rename to src/features/ui/components/modals/actions-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/birthdays-modal.tsx b/src/features/ui/components/modals/birthdays-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/birthdays-modal.tsx
rename to src/features/ui/components/modals/birthdays-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/boost-modal.tsx b/src/features/ui/components/modals/boost-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/boost-modal.tsx
rename to src/features/ui/components/modals/boost-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/compare-history-modal.tsx b/src/features/ui/components/modals/compare-history-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/compare-history-modal.tsx
rename to src/features/ui/components/modals/compare-history-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/component-modal.tsx b/src/features/ui/components/modals/component-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/component-modal.tsx
rename to src/features/ui/components/modals/component-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/compose-event-modal/compose-event-modal.tsx b/src/features/ui/components/modals/compose-event-modal/compose-event-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/compose-event-modal/compose-event-modal.tsx
rename to src/features/ui/components/modals/compose-event-modal/compose-event-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/compose-event-modal/upload-button.tsx b/src/features/ui/components/modals/compose-event-modal/upload-button.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/compose-event-modal/upload-button.tsx
rename to src/features/ui/components/modals/compose-event-modal/upload-button.tsx
diff --git a/app/soapbox/features/ui/components/modals/compose-modal.tsx b/src/features/ui/components/modals/compose-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/compose-modal.tsx
rename to src/features/ui/components/modals/compose-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/confirmation-modal.tsx b/src/features/ui/components/modals/confirmation-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/confirmation-modal.tsx
rename to src/features/ui/components/modals/confirmation-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/crypto-donate-modal.tsx b/src/features/ui/components/modals/crypto-donate-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/crypto-donate-modal.tsx
rename to src/features/ui/components/modals/crypto-donate-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/dislikes-modal.tsx b/src/features/ui/components/modals/dislikes-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/dislikes-modal.tsx
rename to src/features/ui/components/modals/dislikes-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/edit-announcement-modal.tsx b/src/features/ui/components/modals/edit-announcement-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/edit-announcement-modal.tsx
rename to src/features/ui/components/modals/edit-announcement-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/edit-federation-modal.tsx b/src/features/ui/components/modals/edit-federation-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/edit-federation-modal.tsx
rename to src/features/ui/components/modals/edit-federation-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/embed-modal.tsx b/src/features/ui/components/modals/embed-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/embed-modal.tsx
rename to src/features/ui/components/modals/embed-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/event-map-modal.tsx b/src/features/ui/components/modals/event-map-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/event-map-modal.tsx
rename to src/features/ui/components/modals/event-map-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/event-participants-modal.tsx b/src/features/ui/components/modals/event-participants-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/event-participants-modal.tsx
rename to src/features/ui/components/modals/event-participants-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/familiar-followers-modal.tsx b/src/features/ui/components/modals/familiar-followers-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/familiar-followers-modal.tsx
rename to src/features/ui/components/modals/familiar-followers-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/favourites-modal.tsx b/src/features/ui/components/modals/favourites-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/favourites-modal.tsx
rename to src/features/ui/components/modals/favourites-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/hotkeys-modal.tsx b/src/features/ui/components/modals/hotkeys-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/hotkeys-modal.tsx
rename to src/features/ui/components/modals/hotkeys-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/join-event-modal.tsx b/src/features/ui/components/modals/join-event-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/join-event-modal.tsx
rename to src/features/ui/components/modals/join-event-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/landing-page-modal.tsx b/src/features/ui/components/modals/landing-page-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/landing-page-modal.tsx
rename to src/features/ui/components/modals/landing-page-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/manage-group-modal/create-group-modal.tsx b/src/features/ui/components/modals/manage-group-modal/create-group-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/manage-group-modal/create-group-modal.tsx
rename to src/features/ui/components/modals/manage-group-modal/create-group-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/manage-group-modal/steps/confirmation-step.tsx b/src/features/ui/components/modals/manage-group-modal/steps/confirmation-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/manage-group-modal/steps/confirmation-step.tsx
rename to src/features/ui/components/modals/manage-group-modal/steps/confirmation-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx b/src/features/ui/components/modals/manage-group-modal/steps/details-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/manage-group-modal/steps/details-step.tsx
rename to src/features/ui/components/modals/manage-group-modal/steps/details-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/manage-group-modal/steps/privacy-step.tsx b/src/features/ui/components/modals/manage-group-modal/steps/privacy-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/manage-group-modal/steps/privacy-step.tsx
rename to src/features/ui/components/modals/manage-group-modal/steps/privacy-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/media-modal.tsx b/src/features/ui/components/modals/media-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/media-modal.tsx
rename to src/features/ui/components/modals/media-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/mentions-modal.tsx b/src/features/ui/components/modals/mentions-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/mentions-modal.tsx
rename to src/features/ui/components/modals/mentions-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/missing-description-modal.tsx b/src/features/ui/components/modals/missing-description-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/missing-description-modal.tsx
rename to src/features/ui/components/modals/missing-description-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/mute-modal.tsx b/src/features/ui/components/modals/mute-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/mute-modal.tsx
rename to src/features/ui/components/modals/mute-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/policy-modal.tsx b/src/features/ui/components/modals/policy-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/policy-modal.tsx
rename to src/features/ui/components/modals/policy-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/reactions-modal.tsx b/src/features/ui/components/modals/reactions-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/reactions-modal.tsx
rename to src/features/ui/components/modals/reactions-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/reblogs-modal.tsx b/src/features/ui/components/modals/reblogs-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/reblogs-modal.tsx
rename to src/features/ui/components/modals/reblogs-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/reply-mentions-modal.tsx b/src/features/ui/components/modals/reply-mentions-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/reply-mentions-modal.tsx
rename to src/features/ui/components/modals/reply-mentions-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx b/src/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx
similarity index 93%
rename from app/soapbox/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx
rename to src/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx
index 14c5df7d4..f99b0e8bc 100644
--- a/app/soapbox/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx
+++ b/src/features/ui/components/modals/report-modal/__tests__/report-modal.test.tsx
@@ -51,13 +51,13 @@ test.skip('skip', () => {});
// });
// it('successfully renders the first step', () => {
-// render( , {}, store);
+// render( , {}, store);
// expect(screen.getByText('Reason for reporting')).toBeInTheDocument();
// });
// it('successfully moves to the second step', async() => {
// const user = userEvent.setup();
-// render( , {}, store);
+// render( , {}, store);
// await user.click(screen.getByTestId('rule-1'));
// await user.click(screen.getByText('Next'));
// expect(screen.getByText(/Further actions:/)).toBeInTheDocument();
@@ -65,7 +65,7 @@ test.skip('skip', () => {});
// it('successfully moves to the third step', async() => {
// const user = userEvent.setup();
-// render( , {}, store);
+// render( , {}, store);
// await user.click(screen.getByTestId('rule-1'));
// await user.click(screen.getByText(/Next/));
// await user.click(screen.getByText(/Submit/));
diff --git a/app/soapbox/features/ui/components/modals/report-modal/report-modal.tsx b/src/features/ui/components/modals/report-modal/report-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/report-modal/report-modal.tsx
rename to src/features/ui/components/modals/report-modal/report-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/report-modal/steps/confirmation-step.tsx b/src/features/ui/components/modals/report-modal/steps/confirmation-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/report-modal/steps/confirmation-step.tsx
rename to src/features/ui/components/modals/report-modal/steps/confirmation-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/report-modal/steps/other-actions-step.tsx b/src/features/ui/components/modals/report-modal/steps/other-actions-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/report-modal/steps/other-actions-step.tsx
rename to src/features/ui/components/modals/report-modal/steps/other-actions-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx b/src/features/ui/components/modals/report-modal/steps/reason-step.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/report-modal/steps/reason-step.tsx
rename to src/features/ui/components/modals/report-modal/steps/reason-step.tsx
diff --git a/app/soapbox/features/ui/components/modals/unauthorized-modal.tsx b/src/features/ui/components/modals/unauthorized-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/unauthorized-modal.tsx
rename to src/features/ui/components/modals/unauthorized-modal.tsx
diff --git a/app/soapbox/features/ui/components/modals/video-modal.tsx b/src/features/ui/components/modals/video-modal.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/modals/video-modal.tsx
rename to src/features/ui/components/modals/video-modal.tsx
diff --git a/app/soapbox/features/ui/components/navbar.tsx b/src/features/ui/components/navbar.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/navbar.tsx
rename to src/features/ui/components/navbar.tsx
diff --git a/app/soapbox/features/ui/components/panels/__tests__/sign-up-panel.test.tsx b/src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/__tests__/sign-up-panel.test.tsx
rename to src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx
diff --git a/app/soapbox/features/ui/components/panels/account-note-panel.tsx b/src/features/ui/components/panels/account-note-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/account-note-panel.tsx
rename to src/features/ui/components/panels/account-note-panel.tsx
diff --git a/app/soapbox/features/ui/components/panels/my-groups-panel.tsx b/src/features/ui/components/panels/my-groups-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/my-groups-panel.tsx
rename to src/features/ui/components/panels/my-groups-panel.tsx
diff --git a/app/soapbox/features/ui/components/panels/new-event-panel.tsx b/src/features/ui/components/panels/new-event-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/new-event-panel.tsx
rename to src/features/ui/components/panels/new-event-panel.tsx
diff --git a/app/soapbox/features/ui/components/panels/new-group-panel.tsx b/src/features/ui/components/panels/new-group-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/new-group-panel.tsx
rename to src/features/ui/components/panels/new-group-panel.tsx
diff --git a/app/soapbox/features/ui/components/panels/sign-up-panel.tsx b/src/features/ui/components/panels/sign-up-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/sign-up-panel.tsx
rename to src/features/ui/components/panels/sign-up-panel.tsx
diff --git a/app/soapbox/features/ui/components/panels/suggested-groups-panel.tsx b/src/features/ui/components/panels/suggested-groups-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/panels/suggested-groups-panel.tsx
rename to src/features/ui/components/panels/suggested-groups-panel.tsx
diff --git a/app/soapbox/features/ui/components/pending-status.tsx b/src/features/ui/components/pending-status.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/pending-status.tsx
rename to src/features/ui/components/pending-status.tsx
diff --git a/app/soapbox/features/ui/components/pinned-accounts-panel.tsx b/src/features/ui/components/pinned-accounts-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/pinned-accounts-panel.tsx
rename to src/features/ui/components/pinned-accounts-panel.tsx
diff --git a/app/soapbox/features/ui/components/poll-preview.tsx b/src/features/ui/components/poll-preview.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/poll-preview.tsx
rename to src/features/ui/components/poll-preview.tsx
diff --git a/app/soapbox/features/ui/components/profile-dropdown.tsx b/src/features/ui/components/profile-dropdown.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-dropdown.tsx
rename to src/features/ui/components/profile-dropdown.tsx
diff --git a/app/soapbox/features/ui/components/profile-familiar-followers.tsx b/src/features/ui/components/profile-familiar-followers.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-familiar-followers.tsx
rename to src/features/ui/components/profile-familiar-followers.tsx
diff --git a/app/soapbox/features/ui/components/profile-field.tsx b/src/features/ui/components/profile-field.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-field.tsx
rename to src/features/ui/components/profile-field.tsx
diff --git a/app/soapbox/features/ui/components/profile-fields-panel.tsx b/src/features/ui/components/profile-fields-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-fields-panel.tsx
rename to src/features/ui/components/profile-fields-panel.tsx
diff --git a/app/soapbox/features/ui/components/profile-info-panel.tsx b/src/features/ui/components/profile-info-panel.tsx
similarity index 99%
rename from app/soapbox/features/ui/components/profile-info-panel.tsx
rename to src/features/ui/components/profile-info-panel.tsx
index d7cbb8775..9fe73129c 100644
--- a/app/soapbox/features/ui/components/profile-info-panel.tsx
+++ b/src/features/ui/components/profile-info-panel.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import React from 'react';
import { defineMessages, useIntl, FormattedMessage } from 'react-intl';
diff --git a/app/soapbox/features/ui/components/profile-media-panel.tsx b/src/features/ui/components/profile-media-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-media-panel.tsx
rename to src/features/ui/components/profile-media-panel.tsx
diff --git a/app/soapbox/features/ui/components/profile-stats.tsx b/src/features/ui/components/profile-stats.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/profile-stats.tsx
rename to src/features/ui/components/profile-stats.tsx
diff --git a/app/soapbox/features/ui/components/promo-panel.tsx b/src/features/ui/components/promo-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/promo-panel.tsx
rename to src/features/ui/components/promo-panel.tsx
diff --git a/app/soapbox/features/ui/components/subscription-button.tsx b/src/features/ui/components/subscription-button.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/subscription-button.tsx
rename to src/features/ui/components/subscription-button.tsx
diff --git a/app/soapbox/features/ui/components/theme-selector.tsx b/src/features/ui/components/theme-selector.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/theme-selector.tsx
rename to src/features/ui/components/theme-selector.tsx
diff --git a/app/soapbox/features/ui/components/theme-toggle.tsx b/src/features/ui/components/theme-toggle.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/theme-toggle.tsx
rename to src/features/ui/components/theme-toggle.tsx
diff --git a/app/soapbox/features/ui/components/timeline.tsx b/src/features/ui/components/timeline.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/timeline.tsx
rename to src/features/ui/components/timeline.tsx
diff --git a/app/soapbox/features/ui/components/trends-panel.tsx b/src/features/ui/components/trends-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/trends-panel.tsx
rename to src/features/ui/components/trends-panel.tsx
diff --git a/app/soapbox/features/ui/components/user-panel.tsx b/src/features/ui/components/user-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/user-panel.tsx
rename to src/features/ui/components/user-panel.tsx
diff --git a/app/soapbox/features/ui/components/who-to-follow-panel.tsx b/src/features/ui/components/who-to-follow-panel.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/who-to-follow-panel.tsx
rename to src/features/ui/components/who-to-follow-panel.tsx
diff --git a/app/soapbox/features/ui/components/zoomable-image.tsx b/src/features/ui/components/zoomable-image.tsx
similarity index 100%
rename from app/soapbox/features/ui/components/zoomable-image.tsx
rename to src/features/ui/components/zoomable-image.tsx
diff --git a/app/soapbox/features/ui/containers/bundle-container.tsx b/src/features/ui/containers/bundle-container.tsx
similarity index 100%
rename from app/soapbox/features/ui/containers/bundle-container.tsx
rename to src/features/ui/containers/bundle-container.tsx
diff --git a/app/soapbox/features/ui/containers/modal-container.ts b/src/features/ui/containers/modal-container.ts
similarity index 100%
rename from app/soapbox/features/ui/containers/modal-container.ts
rename to src/features/ui/containers/modal-container.ts
diff --git a/app/soapbox/features/ui/index.tsx b/src/features/ui/index.tsx
similarity index 95%
rename from app/soapbox/features/ui/index.tsx
rename to src/features/ui/index.tsx
index cb2da25d1..5ff06223e 100644
--- a/app/soapbox/features/ui/index.tsx
+++ b/src/features/ui/index.tsx
@@ -1,5 +1,3 @@
-'use strict';
-
import clsx from 'clsx';
import React, { useEffect, useRef } from 'react';
import { Switch, useHistory, useLocation, Redirect } from 'react-router-dom';
@@ -23,7 +21,7 @@ import withHoc from 'soapbox/components/hoc/with-hoc';
import SidebarNavigation from 'soapbox/components/sidebar-navigation';
import ThumbNavigation from 'soapbox/components/thumb-navigation';
import { Layout } from 'soapbox/components/ui';
-import { useAppDispatch, useAppSelector, useOwnAccount, useSoapboxConfig, useFeatures, useDraggedFiles } from 'soapbox/hooks';
+import { useAppDispatch, useAppSelector, useOwnAccount, useSoapboxConfig, useFeatures, useDraggedFiles, useInstance } from 'soapbox/hooks';
import AdminPage from 'soapbox/pages/admin-page';
import ChatsPage from 'soapbox/pages/chats-page';
import DefaultPage from 'soapbox/pages/default-page';
@@ -134,6 +132,13 @@ import {
Announcements,
EditGroup,
FollowedTags,
+ AboutPage,
+ RegistrationPage,
+ LoginPage,
+ PasswordReset,
+ PasswordResetConfirm,
+ RegisterInvite,
+ ExternalLogin,
} from './util/async-components';
import GlobalHotkeys from './util/global-hotkeys';
import { WrappedRoute } from './util/react-router-helpers';
@@ -159,6 +164,7 @@ interface ISwitchingColumnsArea {
}
const SwitchingColumnsArea: React.FC = ({ children }) => {
+ const instance = useInstance();
const features = useFeatures();
const { search } = useLocation();
@@ -350,6 +356,21 @@ const SwitchingColumnsArea: React.FC = ({ children }) =>
+
+
+ {(features.accountCreation && instance.registrations) && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
);
diff --git a/app/soapbox/features/ui/util/async-components.ts b/src/features/ui/util/async-components.ts
similarity index 95%
rename from app/soapbox/features/ui/util/async-components.ts
rename to src/features/ui/util/async-components.ts
index a364bc33a..bef8fcf30 100644
--- a/app/soapbox/features/ui/util/async-components.ts
+++ b/src/features/ui/util/async-components.ts
@@ -1,3 +1,7 @@
+export function AboutPage() {
+ return import('../../about');
+}
+
export function EmojiPicker() {
return import('../../emoji/components/emoji-picker');
}
@@ -219,11 +223,11 @@ export function ListEditor() {
}
export function ListAdder() {
- return import(/*webpackChunkName: "features/list_adder" */'../../list-adder');
+ return import('../../list-adder');
}
export function Search() {
- return import(/*webpackChunkName: "features/search" */'../../search');
+ return import('../../search');
}
export function LoginPage() {
@@ -238,6 +242,10 @@ export function LogoutPage() {
return import('../../auth-login/components/logout');
}
+export function RegistrationPage() {
+ return import('../../auth-login/components/registration-page');
+}
+
export function Settings() {
return import('../../settings');
}
@@ -478,24 +486,16 @@ export function OnboardingWizard() {
return import('../../onboarding/onboarding-wizard');
}
-export function WaitlistPage() {
- return import('../../verification/waitlist-page');
-}
-
export function CompareHistoryModal() {
- return import(/*webpackChunkName: "modals/compare_history_modal" */'../components/modals/compare-history-modal');
+ return import('../components/modals/compare-history-modal');
}
export function AuthTokenList() {
return import('../../auth-token-list');
}
-export function VerifySmsModal() {
- return import('../components/modals/verify-sms-modal');
-}
-
export function FamiliarFollowersModal() {
- return import(/*webpackChunkName: "modals/familiar_followers_modal" */'../components/modals/familiar-followers-modal');
+ return import('../components/modals/familiar-followers-modal');
}
export function AnnouncementsPanel() {
@@ -503,7 +503,7 @@ export function AnnouncementsPanel() {
}
export function Quotes() {
- return import(/*webpackChunkName: "features/quotes" */'../../quotes');
+ return import('../../quotes');
}
export function ComposeEventModal() {
diff --git a/app/soapbox/features/ui/util/fullscreen.ts b/src/features/ui/util/fullscreen.ts
similarity index 100%
rename from app/soapbox/features/ui/util/fullscreen.ts
rename to src/features/ui/util/fullscreen.ts
diff --git a/app/soapbox/features/ui/util/global-hotkeys.tsx b/src/features/ui/util/global-hotkeys.tsx
similarity index 100%
rename from app/soapbox/features/ui/util/global-hotkeys.tsx
rename to src/features/ui/util/global-hotkeys.tsx
diff --git a/app/soapbox/features/ui/util/optional-motion.tsx b/src/features/ui/util/optional-motion.tsx
similarity index 100%
rename from app/soapbox/features/ui/util/optional-motion.tsx
rename to src/features/ui/util/optional-motion.tsx
diff --git a/app/soapbox/features/ui/util/pending-status-builder.ts b/src/features/ui/util/pending-status-builder.ts
similarity index 100%
rename from app/soapbox/features/ui/util/pending-status-builder.ts
rename to src/features/ui/util/pending-status-builder.ts
diff --git a/app/soapbox/features/ui/util/react-router-helpers.tsx b/src/features/ui/util/react-router-helpers.tsx
similarity index 100%
rename from app/soapbox/features/ui/util/react-router-helpers.tsx
rename to src/features/ui/util/react-router-helpers.tsx
diff --git a/app/soapbox/features/ui/util/reduced-motion.tsx b/src/features/ui/util/reduced-motion.tsx
similarity index 100%
rename from app/soapbox/features/ui/util/reduced-motion.tsx
rename to src/features/ui/util/reduced-motion.tsx
diff --git a/app/soapbox/features/video/index.tsx b/src/features/video/index.tsx
similarity index 100%
rename from app/soapbox/features/video/index.tsx
rename to src/features/video/index.tsx
diff --git a/app/soapbox/globals.ts b/src/globals.ts
similarity index 100%
rename from app/soapbox/globals.ts
rename to src/globals.ts
diff --git a/app/soapbox/hooks/__mocks__/resize-observer.ts b/src/hooks/__mocks__/resize-observer.ts
similarity index 78%
rename from app/soapbox/hooks/__mocks__/resize-observer.ts
rename to src/hooks/__mocks__/resize-observer.ts
index c75e292ea..172645825 100644
--- a/app/soapbox/hooks/__mocks__/resize-observer.ts
+++ b/src/hooks/__mocks__/resize-observer.ts
@@ -1,5 +1,5 @@
let listener: ((rect: any) => void) | undefined = undefined;
-const mockDisconnect = jest.fn();
+const mockDisconnect = vi.fn();
class ResizeObserver {
diff --git a/app/soapbox/hooks/__tests__/useDimensions.test.ts b/src/hooks/__tests__/useDimensions.test.ts
similarity index 100%
rename from app/soapbox/hooks/__tests__/useDimensions.test.ts
rename to src/hooks/__tests__/useDimensions.test.ts
diff --git a/app/soapbox/hooks/__tests__/useGroupsPath.test.ts b/src/hooks/__tests__/useGroupsPath.test.ts
similarity index 100%
rename from app/soapbox/hooks/__tests__/useGroupsPath.test.ts
rename to src/hooks/__tests__/useGroupsPath.test.ts
diff --git a/app/soapbox/hooks/forms/index.ts b/src/hooks/forms/index.ts
similarity index 100%
rename from app/soapbox/hooks/forms/index.ts
rename to src/hooks/forms/index.ts
diff --git a/app/soapbox/hooks/forms/useImageField.ts b/src/hooks/forms/useImageField.ts
similarity index 100%
rename from app/soapbox/hooks/forms/useImageField.ts
rename to src/hooks/forms/useImageField.ts
diff --git a/app/soapbox/hooks/forms/usePreview.ts b/src/hooks/forms/usePreview.ts
similarity index 100%
rename from app/soapbox/hooks/forms/usePreview.ts
rename to src/hooks/forms/usePreview.ts
diff --git a/app/soapbox/hooks/forms/useTextField.ts b/src/hooks/forms/useTextField.ts
similarity index 100%
rename from app/soapbox/hooks/forms/useTextField.ts
rename to src/hooks/forms/useTextField.ts
diff --git a/app/soapbox/hooks/index.ts b/src/hooks/index.ts
similarity index 100%
rename from app/soapbox/hooks/index.ts
rename to src/hooks/index.ts
diff --git a/app/soapbox/hooks/useApi.ts b/src/hooks/useApi.ts
similarity index 100%
rename from app/soapbox/hooks/useApi.ts
rename to src/hooks/useApi.ts
diff --git a/app/soapbox/hooks/useAppDispatch.ts b/src/hooks/useAppDispatch.ts
similarity index 100%
rename from app/soapbox/hooks/useAppDispatch.ts
rename to src/hooks/useAppDispatch.ts
diff --git a/app/soapbox/hooks/useAppSelector.ts b/src/hooks/useAppSelector.ts
similarity index 100%
rename from app/soapbox/hooks/useAppSelector.ts
rename to src/hooks/useAppSelector.ts
diff --git a/app/soapbox/hooks/useBackend.ts b/src/hooks/useBackend.ts
similarity index 100%
rename from app/soapbox/hooks/useBackend.ts
rename to src/hooks/useBackend.ts
diff --git a/app/soapbox/hooks/useClickOutside.ts b/src/hooks/useClickOutside.ts
similarity index 100%
rename from app/soapbox/hooks/useClickOutside.ts
rename to src/hooks/useClickOutside.ts
diff --git a/app/soapbox/hooks/useCompose.ts b/src/hooks/useCompose.ts
similarity index 100%
rename from app/soapbox/hooks/useCompose.ts
rename to src/hooks/useCompose.ts
diff --git a/app/soapbox/hooks/useDebounce.ts b/src/hooks/useDebounce.ts
similarity index 100%
rename from app/soapbox/hooks/useDebounce.ts
rename to src/hooks/useDebounce.ts
diff --git a/app/soapbox/hooks/useDimensions.ts b/src/hooks/useDimensions.ts
similarity index 100%
rename from app/soapbox/hooks/useDimensions.ts
rename to src/hooks/useDimensions.ts
diff --git a/app/soapbox/hooks/useDraggedFiles.ts b/src/hooks/useDraggedFiles.ts
similarity index 100%
rename from app/soapbox/hooks/useDraggedFiles.ts
rename to src/hooks/useDraggedFiles.ts
diff --git a/app/soapbox/hooks/useFeatures.ts b/src/hooks/useFeatures.ts
similarity index 100%
rename from app/soapbox/hooks/useFeatures.ts
rename to src/hooks/useFeatures.ts
diff --git a/app/soapbox/hooks/useGetState.ts b/src/hooks/useGetState.ts
similarity index 100%
rename from app/soapbox/hooks/useGetState.ts
rename to src/hooks/useGetState.ts
diff --git a/app/soapbox/hooks/useGroupsPath.ts b/src/hooks/useGroupsPath.ts
similarity index 100%
rename from app/soapbox/hooks/useGroupsPath.ts
rename to src/hooks/useGroupsPath.ts
diff --git a/app/soapbox/hooks/useInstance.ts b/src/hooks/useInstance.ts
similarity index 100%
rename from app/soapbox/hooks/useInstance.ts
rename to src/hooks/useInstance.ts
diff --git a/app/soapbox/hooks/useLoading.ts b/src/hooks/useLoading.ts
similarity index 100%
rename from app/soapbox/hooks/useLoading.ts
rename to src/hooks/useLoading.ts
diff --git a/app/soapbox/hooks/useLocale.ts b/src/hooks/useLocale.ts
similarity index 100%
rename from app/soapbox/hooks/useLocale.ts
rename to src/hooks/useLocale.ts
diff --git a/app/soapbox/hooks/useLoggedIn.ts b/src/hooks/useLoggedIn.ts
similarity index 100%
rename from app/soapbox/hooks/useLoggedIn.ts
rename to src/hooks/useLoggedIn.ts
diff --git a/app/soapbox/hooks/useOnScreen.ts b/src/hooks/useOnScreen.ts
similarity index 100%
rename from app/soapbox/hooks/useOnScreen.ts
rename to src/hooks/useOnScreen.ts
diff --git a/app/soapbox/hooks/useOwnAccount.ts b/src/hooks/useOwnAccount.ts
similarity index 100%
rename from app/soapbox/hooks/useOwnAccount.ts
rename to src/hooks/useOwnAccount.ts
diff --git a/app/soapbox/hooks/usePrevious.ts b/src/hooks/usePrevious.ts
similarity index 100%
rename from app/soapbox/hooks/usePrevious.ts
rename to src/hooks/usePrevious.ts
diff --git a/app/soapbox/hooks/useRefEventHandler.ts b/src/hooks/useRefEventHandler.ts
similarity index 100%
rename from app/soapbox/hooks/useRefEventHandler.ts
rename to src/hooks/useRefEventHandler.ts
diff --git a/src/hooks/useRegistrationStatus.ts b/src/hooks/useRegistrationStatus.ts
new file mode 100644
index 000000000..0f1242d1e
--- /dev/null
+++ b/src/hooks/useRegistrationStatus.ts
@@ -0,0 +1,12 @@
+import { useFeatures } from './useFeatures';
+import { useInstance } from './useInstance';
+
+export const useRegistrationStatus = () => {
+ const instance = useInstance();
+ const features = useFeatures();
+
+ return {
+ /** Registrations are open, either through Pepe or traditional account creation. */
+ isOpen: features.accountCreation && instance.registrations,
+ };
+};
\ No newline at end of file
diff --git a/app/soapbox/hooks/useSettings.ts b/src/hooks/useSettings.ts
similarity index 100%
rename from app/soapbox/hooks/useSettings.ts
rename to src/hooks/useSettings.ts
diff --git a/app/soapbox/hooks/useSoapboxConfig.ts b/src/hooks/useSoapboxConfig.ts
similarity index 100%
rename from app/soapbox/hooks/useSoapboxConfig.ts
rename to src/hooks/useSoapboxConfig.ts
diff --git a/app/soapbox/hooks/useSystemTheme.ts b/src/hooks/useSystemTheme.ts
similarity index 100%
rename from app/soapbox/hooks/useSystemTheme.ts
rename to src/hooks/useSystemTheme.ts
diff --git a/app/soapbox/hooks/useTheme.ts b/src/hooks/useTheme.ts
similarity index 100%
rename from app/soapbox/hooks/useTheme.ts
rename to src/hooks/useTheme.ts
diff --git a/app/soapbox/iframe.ts b/src/iframe.ts
similarity index 100%
rename from app/soapbox/iframe.ts
rename to src/iframe.ts
diff --git a/app/instance/about.example/dmca.html b/src/instance/about.example/dmca.html
similarity index 99%
rename from app/instance/about.example/dmca.html
rename to src/instance/about.example/dmca.html
index 516748de8..7e8a236e6 100644
--- a/app/instance/about.example/dmca.html
+++ b/src/instance/about.example/dmca.html
@@ -1,4 +1,4 @@
-COPYRIGHT POLICY
+Copyright Policy
Reporting Claims of Copyright Infringement
We take claims of copyright infringement seriously. We will respond to notices of alleged copyright infringement that comply with applicable law. If you believe any materials accessible on or from this site (the "Website") infringe your copyright, you may request removal of those materials (or access to them) from the Website by submitting written notification to our copyright agent designated below. In accordance with the Online Copyright Infringement Liability Limitation Act of the Digital Millennium Copyright Act (17 U.S.C. § 512) ("DMCA"), the written notice (the "DMCA Notice") must include substantially the following:
diff --git a/app/instance/about.example/index.html b/src/instance/about.example/index.html
similarity index 73%
rename from app/instance/about.example/index.html
rename to src/instance/about.example/index.html
index 6af826f85..7974e5374 100644
--- a/app/instance/about.example/index.html
+++ b/src/instance/about.example/index.html
@@ -1,8 +1,7 @@
-About Your_Instance
-Your_Instance description
-Your_Instance is a way to join the Fediverse, to be part of a community, and to reclaim your freedom of speech in social media.
+About Us
+Join the Fediverse, be part of a community, and to reclaim your freedom online.
-Site rules
+Site rules
Please refrain from:
Posting anything illegal.
@@ -22,6 +21,6 @@
A bot where all posts are unlisted.
-Open Source Software
+Open Source Software
Soapbox is free and open source (FOSS) software.
The Soapbox repository can be found at Soapbox
diff --git a/app/instance/about.example/privacy.html b/src/instance/about.example/privacy.html
similarity index 96%
rename from app/instance/about.example/privacy.html
rename to src/instance/about.example/privacy.html
index 2b9869ba2..cf353cdae 100644
--- a/app/instance/about.example/privacy.html
+++ b/src/instance/about.example/privacy.html
@@ -1,12 +1,6 @@
-PRIVACY POLICY
-Last Updated: Your_Update_Date
-
-Your_Entity_Name ("Company" or "We") respect your privacy and are committed to protecting it through our compliance with this policy.
-
- This policy describes the types of information we may collect from you or that you may provide when you visit the website
- Your_Instance_Name
- and our practices for collecting, using, maintaining, protecting, and disclosing that information.
-
+Privacy Policy
+We respect your privacy and are committed to protecting it through our compliance with this policy.
+This policy describes the types of information we may collect from you or that you may provide when you visit our website, and our practices for collecting, using, maintaining, protecting, and disclosing that information.
This policy applies to information we collect:
On the Website.
In email, text, and other electronic messages between you and this Website.
diff --git a/app/instance/about.example/tos.html b/src/instance/about.example/tos.html
similarity index 97%
rename from app/instance/about.example/tos.html
rename to src/instance/about.example/tos.html
index 85464c282..6569b6cc1 100644
--- a/app/instance/about.example/tos.html
+++ b/src/instance/about.example/tos.html
@@ -1,9 +1,9 @@
+Terms of Service
By using this web site, you agree to these Terms of Use, to our
Copyright Policy , and to our
Privacy Policy .
-
Our Terms of Use are simple:
diff --git a/app/instance/soapbox.example.json b/src/instance/soapbox.example.json
similarity index 100%
rename from app/instance/soapbox.example.json
rename to src/instance/soapbox.example.json
diff --git a/app/soapbox/is-mobile.ts b/src/is-mobile.ts
similarity index 98%
rename from app/soapbox/is-mobile.ts
rename to src/is-mobile.ts
index fe90f9a97..bbe38a123 100644
--- a/app/soapbox/is-mobile.ts
+++ b/src/is-mobile.ts
@@ -1,5 +1,3 @@
-'use strict';
-
import { supportsPassiveEvents } from 'detect-passive-events';
/** Breakpoint at which the application is considered "mobile". */
diff --git a/app/soapbox/jest/factory.ts b/src/jest/factory.ts
similarity index 100%
rename from app/soapbox/jest/factory.ts
rename to src/jest/factory.ts
diff --git a/app/soapbox/jest/fixtures/chats.json b/src/jest/fixtures/chats.json
similarity index 100%
rename from app/soapbox/jest/fixtures/chats.json
rename to src/jest/fixtures/chats.json
diff --git a/src/jest/mock-stores.tsx b/src/jest/mock-stores.tsx
new file mode 100644
index 000000000..0dc4bae79
--- /dev/null
+++ b/src/jest/mock-stores.tsx
@@ -0,0 +1,24 @@
+import alexJson from 'soapbox/__fixtures__/pleroma-account.json';
+import { normalizeInstance } from 'soapbox/normalizers';
+
+import { buildAccount } from './factory';
+
+/** Store with registrations open. */
+const storeOpen = { instance: normalizeInstance({ registrations: true }) };
+
+/** Store with registrations closed. */
+const storeClosed = { instance: normalizeInstance({ registrations: false }) };
+
+/** Store with a logged-in user. */
+const storeLoggedIn = {
+ me: alexJson.id,
+ accounts: {
+ [alexJson.id]: buildAccount(alexJson as any),
+ },
+};
+
+export {
+ storeOpen,
+ storeClosed,
+ storeLoggedIn,
+};
\ No newline at end of file
diff --git a/app/soapbox/jest/test-helpers.tsx b/src/jest/test-helpers.tsx
similarity index 100%
rename from app/soapbox/jest/test-helpers.tsx
rename to src/jest/test-helpers.tsx
diff --git a/app/soapbox/jest/test-setup.ts b/src/jest/test-setup.ts
similarity index 58%
rename from app/soapbox/jest/test-setup.ts
rename to src/jest/test-setup.ts
index 419c9ea37..732a36ccf 100644
--- a/app/soapbox/jest/test-setup.ts
+++ b/src/jest/test-setup.ts
@@ -1,18 +1,18 @@
-'use strict';
-
import { act } from '@testing-library/react';
import { toast } from 'react-hot-toast';
+// eslint-disable-next-line import/no-extraneous-dependencies
+import '@testing-library/jest-dom/vitest';
import { __clear as clearApiMocks } from '../api/__mocks__';
// API mocking
-jest.mock('soapbox/api');
+vi.mock('soapbox/api');
afterEach(() => {
clearApiMocks();
});
// Query mocking
-jest.mock('soapbox/queries/client');
+vi.mock('soapbox/queries/client');
// Mock IndexedDB
// https://dev.to/andyhaskell/testing-your-indexeddb-code-with-jest-2o17
@@ -26,18 +26,18 @@ afterEach(() => {
});
const intersectionObserverMock = () => ({ observe: () => null, disconnect: () => null });
-window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
+window.IntersectionObserver = vi.fn().mockImplementation(intersectionObserverMock);
Object.defineProperty(window, 'matchMedia', {
writable: true,
- value: jest.fn().mockImplementation(query => ({
+ value: vi.fn().mockImplementation(query => ({
matches: false,
media: query,
onchange: null,
- addListener: jest.fn(), // Deprecated
- removeListener: jest.fn(), // Deprecated
- addEventListener: jest.fn(),
- removeEventListener: jest.fn(),
- dispatchEvent: jest.fn(),
+ addListener: vi.fn(), // Deprecated
+ removeListener: vi.fn(), // Deprecated
+ addEventListener: vi.fn(),
+ removeEventListener: vi.fn(),
+ dispatchEvent: vi.fn(),
})),
});
diff --git a/app/soapbox/locales/ar.json b/src/locales/ar.json
similarity index 100%
rename from app/soapbox/locales/ar.json
rename to src/locales/ar.json
diff --git a/app/soapbox/locales/ast.json b/src/locales/ast.json
similarity index 100%
rename from app/soapbox/locales/ast.json
rename to src/locales/ast.json
diff --git a/app/soapbox/locales/bg.json b/src/locales/bg.json
similarity index 100%
rename from app/soapbox/locales/bg.json
rename to src/locales/bg.json
diff --git a/app/soapbox/locales/bn.json b/src/locales/bn.json
similarity index 100%
rename from app/soapbox/locales/bn.json
rename to src/locales/bn.json
diff --git a/app/soapbox/locales/br.json b/src/locales/br.json
similarity index 100%
rename from app/soapbox/locales/br.json
rename to src/locales/br.json
diff --git a/app/soapbox/locales/bs.json b/src/locales/bs.json
similarity index 100%
rename from app/soapbox/locales/bs.json
rename to src/locales/bs.json
diff --git a/app/soapbox/locales/ca.json b/src/locales/ca.json
similarity index 100%
rename from app/soapbox/locales/ca.json
rename to src/locales/ca.json
diff --git a/app/soapbox/locales/co.json b/src/locales/co.json
similarity index 100%
rename from app/soapbox/locales/co.json
rename to src/locales/co.json
diff --git a/app/soapbox/locales/cs.json b/src/locales/cs.json
similarity index 100%
rename from app/soapbox/locales/cs.json
rename to src/locales/cs.json
diff --git a/app/soapbox/locales/cy.json b/src/locales/cy.json
similarity index 100%
rename from app/soapbox/locales/cy.json
rename to src/locales/cy.json
diff --git a/app/soapbox/locales/da.json b/src/locales/da.json
similarity index 100%
rename from app/soapbox/locales/da.json
rename to src/locales/da.json
diff --git a/app/soapbox/locales/de.json b/src/locales/de.json
similarity index 100%
rename from app/soapbox/locales/de.json
rename to src/locales/de.json
diff --git a/app/soapbox/locales/el.json b/src/locales/el.json
similarity index 100%
rename from app/soapbox/locales/el.json
rename to src/locales/el.json
diff --git a/app/soapbox/locales/en-Shaw.json b/src/locales/en-Shaw.json
similarity index 100%
rename from app/soapbox/locales/en-Shaw.json
rename to src/locales/en-Shaw.json
diff --git a/app/soapbox/locales/en.json b/src/locales/en.json
similarity index 100%
rename from app/soapbox/locales/en.json
rename to src/locales/en.json
diff --git a/app/soapbox/locales/eo.json b/src/locales/eo.json
similarity index 100%
rename from app/soapbox/locales/eo.json
rename to src/locales/eo.json
diff --git a/app/soapbox/locales/es-AR.json b/src/locales/es-AR.json
similarity index 100%
rename from app/soapbox/locales/es-AR.json
rename to src/locales/es-AR.json
diff --git a/app/soapbox/locales/es.json b/src/locales/es.json
similarity index 100%
rename from app/soapbox/locales/es.json
rename to src/locales/es.json
diff --git a/app/soapbox/locales/et.json b/src/locales/et.json
similarity index 100%
rename from app/soapbox/locales/et.json
rename to src/locales/et.json
diff --git a/app/soapbox/locales/eu.json b/src/locales/eu.json
similarity index 100%
rename from app/soapbox/locales/eu.json
rename to src/locales/eu.json
diff --git a/app/soapbox/locales/fa.json b/src/locales/fa.json
similarity index 100%
rename from app/soapbox/locales/fa.json
rename to src/locales/fa.json
diff --git a/app/soapbox/locales/fi.json b/src/locales/fi.json
similarity index 100%
rename from app/soapbox/locales/fi.json
rename to src/locales/fi.json
diff --git a/app/soapbox/locales/fr.json b/src/locales/fr.json
similarity index 100%
rename from app/soapbox/locales/fr.json
rename to src/locales/fr.json
diff --git a/app/soapbox/locales/ga.json b/src/locales/ga.json
similarity index 100%
rename from app/soapbox/locales/ga.json
rename to src/locales/ga.json
diff --git a/app/soapbox/locales/gl.json b/src/locales/gl.json
similarity index 100%
rename from app/soapbox/locales/gl.json
rename to src/locales/gl.json
diff --git a/app/soapbox/locales/he.json b/src/locales/he.json
similarity index 100%
rename from app/soapbox/locales/he.json
rename to src/locales/he.json
diff --git a/app/soapbox/locales/hi.json b/src/locales/hi.json
similarity index 100%
rename from app/soapbox/locales/hi.json
rename to src/locales/hi.json
diff --git a/app/soapbox/locales/hr.json b/src/locales/hr.json
similarity index 100%
rename from app/soapbox/locales/hr.json
rename to src/locales/hr.json
diff --git a/app/soapbox/locales/hu.json b/src/locales/hu.json
similarity index 100%
rename from app/soapbox/locales/hu.json
rename to src/locales/hu.json
diff --git a/app/soapbox/locales/hy.json b/src/locales/hy.json
similarity index 100%
rename from app/soapbox/locales/hy.json
rename to src/locales/hy.json
diff --git a/app/soapbox/locales/id.json b/src/locales/id.json
similarity index 100%
rename from app/soapbox/locales/id.json
rename to src/locales/id.json
diff --git a/app/soapbox/locales/io.json b/src/locales/io.json
similarity index 100%
rename from app/soapbox/locales/io.json
rename to src/locales/io.json
diff --git a/app/soapbox/locales/is.json b/src/locales/is.json
similarity index 100%
rename from app/soapbox/locales/is.json
rename to src/locales/is.json
diff --git a/app/soapbox/locales/it.json b/src/locales/it.json
similarity index 99%
rename from app/soapbox/locales/it.json
rename to src/locales/it.json
index 96afe28e9..f68b44040 100644
--- a/app/soapbox/locales/it.json
+++ b/src/locales/it.json
@@ -80,6 +80,7 @@
"account_moderation_modal.roles.moderator": "Moderatore",
"account_moderation_modal.roles.user": "Utente",
"account_moderation_modal.title": "Gestisci @{acct}",
+ "account_note.header": "Annotazione",
"account_note.placeholder": "Nessun commento",
"account_search.placeholder": "Cerca un profilo",
"actualStatus.edited": "Modificato: {date}",
@@ -765,6 +766,7 @@
"gdpr.learn_more": "Maggiori informazioni",
"gdpr.message": "{siteTitle} usa i cookie tecnici, quelli essenziali al funzionamento.",
"gdpr.title": "{siteTitle} usa i cookie",
+ "generic.saved": "Salvata",
"getting_started.open_source_notice": "{code_name} è un software open source. Puoi contribuire o segnalare errori su GitLab all'indirizzo {code_link} (v{code_version}).",
"group.banned.message": "Hai ricevuto il ban da {group}",
"group.cancel_request": "Cancella richiesta",
diff --git a/app/soapbox/locales/ja.json b/src/locales/ja.json
similarity index 100%
rename from app/soapbox/locales/ja.json
rename to src/locales/ja.json
diff --git a/app/soapbox/locales/ka.json b/src/locales/ka.json
similarity index 100%
rename from app/soapbox/locales/ka.json
rename to src/locales/ka.json
diff --git a/app/soapbox/locales/kk.json b/src/locales/kk.json
similarity index 100%
rename from app/soapbox/locales/kk.json
rename to src/locales/kk.json
diff --git a/app/soapbox/locales/ko.json b/src/locales/ko.json
similarity index 100%
rename from app/soapbox/locales/ko.json
rename to src/locales/ko.json
diff --git a/app/soapbox/locales/lt.json b/src/locales/lt.json
similarity index 100%
rename from app/soapbox/locales/lt.json
rename to src/locales/lt.json
diff --git a/app/soapbox/locales/lv.json b/src/locales/lv.json
similarity index 100%
rename from app/soapbox/locales/lv.json
rename to src/locales/lv.json
diff --git a/app/soapbox/locales/mk.json b/src/locales/mk.json
similarity index 100%
rename from app/soapbox/locales/mk.json
rename to src/locales/mk.json
diff --git a/app/soapbox/locales/ms.json b/src/locales/ms.json
similarity index 100%
rename from app/soapbox/locales/ms.json
rename to src/locales/ms.json
diff --git a/app/soapbox/locales/nl.json b/src/locales/nl.json
similarity index 100%
rename from app/soapbox/locales/nl.json
rename to src/locales/nl.json
diff --git a/app/soapbox/locales/nn.json b/src/locales/nn.json
similarity index 100%
rename from app/soapbox/locales/nn.json
rename to src/locales/nn.json
diff --git a/app/soapbox/locales/no.json b/src/locales/no.json
similarity index 100%
rename from app/soapbox/locales/no.json
rename to src/locales/no.json
diff --git a/app/soapbox/locales/oc.json b/src/locales/oc.json
similarity index 100%
rename from app/soapbox/locales/oc.json
rename to src/locales/oc.json
diff --git a/app/soapbox/locales/pl.json b/src/locales/pl.json
similarity index 100%
rename from app/soapbox/locales/pl.json
rename to src/locales/pl.json
diff --git a/app/soapbox/locales/pt-BR.json b/src/locales/pt-BR.json
similarity index 100%
rename from app/soapbox/locales/pt-BR.json
rename to src/locales/pt-BR.json
diff --git a/app/soapbox/locales/pt.json b/src/locales/pt.json
similarity index 100%
rename from app/soapbox/locales/pt.json
rename to src/locales/pt.json
diff --git a/app/soapbox/locales/ro.json b/src/locales/ro.json
similarity index 100%
rename from app/soapbox/locales/ro.json
rename to src/locales/ro.json
diff --git a/app/soapbox/locales/ru.json b/src/locales/ru.json
similarity index 100%
rename from app/soapbox/locales/ru.json
rename to src/locales/ru.json
diff --git a/app/soapbox/locales/sk.json b/src/locales/sk.json
similarity index 100%
rename from app/soapbox/locales/sk.json
rename to src/locales/sk.json
diff --git a/app/soapbox/locales/sl.json b/src/locales/sl.json
similarity index 100%
rename from app/soapbox/locales/sl.json
rename to src/locales/sl.json
diff --git a/app/soapbox/locales/sq.json b/src/locales/sq.json
similarity index 100%
rename from app/soapbox/locales/sq.json
rename to src/locales/sq.json
diff --git a/app/soapbox/locales/sr-Latn.json b/src/locales/sr-Latn.json
similarity index 100%
rename from app/soapbox/locales/sr-Latn.json
rename to src/locales/sr-Latn.json
diff --git a/app/soapbox/locales/sr.json b/src/locales/sr.json
similarity index 100%
rename from app/soapbox/locales/sr.json
rename to src/locales/sr.json
diff --git a/app/soapbox/locales/sv.json b/src/locales/sv.json
similarity index 100%
rename from app/soapbox/locales/sv.json
rename to src/locales/sv.json
diff --git a/app/soapbox/locales/ta.json b/src/locales/ta.json
similarity index 100%
rename from app/soapbox/locales/ta.json
rename to src/locales/ta.json
diff --git a/app/soapbox/locales/te.json b/src/locales/te.json
similarity index 100%
rename from app/soapbox/locales/te.json
rename to src/locales/te.json
diff --git a/app/soapbox/locales/th.json b/src/locales/th.json
similarity index 100%
rename from app/soapbox/locales/th.json
rename to src/locales/th.json
diff --git a/app/soapbox/locales/tr.json b/src/locales/tr.json
similarity index 100%
rename from app/soapbox/locales/tr.json
rename to src/locales/tr.json
diff --git a/app/soapbox/locales/uk.json b/src/locales/uk.json
similarity index 100%
rename from app/soapbox/locales/uk.json
rename to src/locales/uk.json
diff --git a/app/soapbox/locales/whitelist_ar.json b/src/locales/whitelist_ar.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ar.json
rename to src/locales/whitelist_ar.json
diff --git a/app/soapbox/locales/whitelist_ast.json b/src/locales/whitelist_ast.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ast.json
rename to src/locales/whitelist_ast.json
diff --git a/app/soapbox/locales/whitelist_bg.json b/src/locales/whitelist_bg.json
similarity index 100%
rename from app/soapbox/locales/whitelist_bg.json
rename to src/locales/whitelist_bg.json
diff --git a/app/soapbox/locales/whitelist_bn.json b/src/locales/whitelist_bn.json
similarity index 100%
rename from app/soapbox/locales/whitelist_bn.json
rename to src/locales/whitelist_bn.json
diff --git a/app/soapbox/locales/whitelist_br.json b/src/locales/whitelist_br.json
similarity index 100%
rename from app/soapbox/locales/whitelist_br.json
rename to src/locales/whitelist_br.json
diff --git a/app/soapbox/locales/whitelist_ca.json b/src/locales/whitelist_ca.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ca.json
rename to src/locales/whitelist_ca.json
diff --git a/app/soapbox/locales/whitelist_co.json b/src/locales/whitelist_co.json
similarity index 100%
rename from app/soapbox/locales/whitelist_co.json
rename to src/locales/whitelist_co.json
diff --git a/app/soapbox/locales/whitelist_cs.json b/src/locales/whitelist_cs.json
similarity index 100%
rename from app/soapbox/locales/whitelist_cs.json
rename to src/locales/whitelist_cs.json
diff --git a/app/soapbox/locales/whitelist_cy.json b/src/locales/whitelist_cy.json
similarity index 100%
rename from app/soapbox/locales/whitelist_cy.json
rename to src/locales/whitelist_cy.json
diff --git a/app/soapbox/locales/whitelist_da.json b/src/locales/whitelist_da.json
similarity index 100%
rename from app/soapbox/locales/whitelist_da.json
rename to src/locales/whitelist_da.json
diff --git a/app/soapbox/locales/whitelist_de.json b/src/locales/whitelist_de.json
similarity index 100%
rename from app/soapbox/locales/whitelist_de.json
rename to src/locales/whitelist_de.json
diff --git a/app/soapbox/locales/whitelist_el.json b/src/locales/whitelist_el.json
similarity index 100%
rename from app/soapbox/locales/whitelist_el.json
rename to src/locales/whitelist_el.json
diff --git a/app/soapbox/locales/whitelist_en-Shaw.json b/src/locales/whitelist_en-Shaw.json
similarity index 100%
rename from app/soapbox/locales/whitelist_en-Shaw.json
rename to src/locales/whitelist_en-Shaw.json
diff --git a/app/soapbox/locales/whitelist_en.json b/src/locales/whitelist_en.json
similarity index 100%
rename from app/soapbox/locales/whitelist_en.json
rename to src/locales/whitelist_en.json
diff --git a/app/soapbox/locales/whitelist_eo.json b/src/locales/whitelist_eo.json
similarity index 100%
rename from app/soapbox/locales/whitelist_eo.json
rename to src/locales/whitelist_eo.json
diff --git a/app/soapbox/locales/whitelist_es-AR.json b/src/locales/whitelist_es-AR.json
similarity index 100%
rename from app/soapbox/locales/whitelist_es-AR.json
rename to src/locales/whitelist_es-AR.json
diff --git a/app/soapbox/locales/whitelist_es.json b/src/locales/whitelist_es.json
similarity index 100%
rename from app/soapbox/locales/whitelist_es.json
rename to src/locales/whitelist_es.json
diff --git a/app/soapbox/locales/whitelist_et.json b/src/locales/whitelist_et.json
similarity index 100%
rename from app/soapbox/locales/whitelist_et.json
rename to src/locales/whitelist_et.json
diff --git a/app/soapbox/locales/whitelist_eu.json b/src/locales/whitelist_eu.json
similarity index 100%
rename from app/soapbox/locales/whitelist_eu.json
rename to src/locales/whitelist_eu.json
diff --git a/app/soapbox/locales/whitelist_fa.json b/src/locales/whitelist_fa.json
similarity index 100%
rename from app/soapbox/locales/whitelist_fa.json
rename to src/locales/whitelist_fa.json
diff --git a/app/soapbox/locales/whitelist_fi.json b/src/locales/whitelist_fi.json
similarity index 100%
rename from app/soapbox/locales/whitelist_fi.json
rename to src/locales/whitelist_fi.json
diff --git a/app/soapbox/locales/whitelist_fr.json b/src/locales/whitelist_fr.json
similarity index 100%
rename from app/soapbox/locales/whitelist_fr.json
rename to src/locales/whitelist_fr.json
diff --git a/app/soapbox/locales/whitelist_ga.json b/src/locales/whitelist_ga.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ga.json
rename to src/locales/whitelist_ga.json
diff --git a/app/soapbox/locales/whitelist_gl.json b/src/locales/whitelist_gl.json
similarity index 100%
rename from app/soapbox/locales/whitelist_gl.json
rename to src/locales/whitelist_gl.json
diff --git a/app/soapbox/locales/whitelist_he.json b/src/locales/whitelist_he.json
similarity index 100%
rename from app/soapbox/locales/whitelist_he.json
rename to src/locales/whitelist_he.json
diff --git a/app/soapbox/locales/whitelist_hi.json b/src/locales/whitelist_hi.json
similarity index 100%
rename from app/soapbox/locales/whitelist_hi.json
rename to src/locales/whitelist_hi.json
diff --git a/app/soapbox/locales/whitelist_hr.json b/src/locales/whitelist_hr.json
similarity index 100%
rename from app/soapbox/locales/whitelist_hr.json
rename to src/locales/whitelist_hr.json
diff --git a/app/soapbox/locales/whitelist_hu.json b/src/locales/whitelist_hu.json
similarity index 100%
rename from app/soapbox/locales/whitelist_hu.json
rename to src/locales/whitelist_hu.json
diff --git a/app/soapbox/locales/whitelist_hy.json b/src/locales/whitelist_hy.json
similarity index 100%
rename from app/soapbox/locales/whitelist_hy.json
rename to src/locales/whitelist_hy.json
diff --git a/app/soapbox/locales/whitelist_id.json b/src/locales/whitelist_id.json
similarity index 100%
rename from app/soapbox/locales/whitelist_id.json
rename to src/locales/whitelist_id.json
diff --git a/app/soapbox/locales/whitelist_io.json b/src/locales/whitelist_io.json
similarity index 100%
rename from app/soapbox/locales/whitelist_io.json
rename to src/locales/whitelist_io.json
diff --git a/app/soapbox/locales/whitelist_is.json b/src/locales/whitelist_is.json
similarity index 100%
rename from app/soapbox/locales/whitelist_is.json
rename to src/locales/whitelist_is.json
diff --git a/app/soapbox/locales/whitelist_it.json b/src/locales/whitelist_it.json
similarity index 100%
rename from app/soapbox/locales/whitelist_it.json
rename to src/locales/whitelist_it.json
diff --git a/app/soapbox/locales/whitelist_ja.json b/src/locales/whitelist_ja.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ja.json
rename to src/locales/whitelist_ja.json
diff --git a/app/soapbox/locales/whitelist_ka.json b/src/locales/whitelist_ka.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ka.json
rename to src/locales/whitelist_ka.json
diff --git a/app/soapbox/locales/whitelist_kk.json b/src/locales/whitelist_kk.json
similarity index 100%
rename from app/soapbox/locales/whitelist_kk.json
rename to src/locales/whitelist_kk.json
diff --git a/app/soapbox/locales/whitelist_ko.json b/src/locales/whitelist_ko.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ko.json
rename to src/locales/whitelist_ko.json
diff --git a/app/soapbox/locales/whitelist_lt.json b/src/locales/whitelist_lt.json
similarity index 100%
rename from app/soapbox/locales/whitelist_lt.json
rename to src/locales/whitelist_lt.json
diff --git a/app/soapbox/locales/whitelist_lv.json b/src/locales/whitelist_lv.json
similarity index 100%
rename from app/soapbox/locales/whitelist_lv.json
rename to src/locales/whitelist_lv.json
diff --git a/app/soapbox/locales/whitelist_mk.json b/src/locales/whitelist_mk.json
similarity index 100%
rename from app/soapbox/locales/whitelist_mk.json
rename to src/locales/whitelist_mk.json
diff --git a/app/soapbox/locales/whitelist_ms.json b/src/locales/whitelist_ms.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ms.json
rename to src/locales/whitelist_ms.json
diff --git a/app/soapbox/locales/whitelist_nl.json b/src/locales/whitelist_nl.json
similarity index 100%
rename from app/soapbox/locales/whitelist_nl.json
rename to src/locales/whitelist_nl.json
diff --git a/app/soapbox/locales/whitelist_nn.json b/src/locales/whitelist_nn.json
similarity index 100%
rename from app/soapbox/locales/whitelist_nn.json
rename to src/locales/whitelist_nn.json
diff --git a/app/soapbox/locales/whitelist_no.json b/src/locales/whitelist_no.json
similarity index 100%
rename from app/soapbox/locales/whitelist_no.json
rename to src/locales/whitelist_no.json
diff --git a/app/soapbox/locales/whitelist_oc.json b/src/locales/whitelist_oc.json
similarity index 100%
rename from app/soapbox/locales/whitelist_oc.json
rename to src/locales/whitelist_oc.json
diff --git a/app/soapbox/locales/whitelist_pl.json b/src/locales/whitelist_pl.json
similarity index 100%
rename from app/soapbox/locales/whitelist_pl.json
rename to src/locales/whitelist_pl.json
diff --git a/app/soapbox/locales/whitelist_pt-BR.json b/src/locales/whitelist_pt-BR.json
similarity index 100%
rename from app/soapbox/locales/whitelist_pt-BR.json
rename to src/locales/whitelist_pt-BR.json
diff --git a/app/soapbox/locales/whitelist_pt.json b/src/locales/whitelist_pt.json
similarity index 100%
rename from app/soapbox/locales/whitelist_pt.json
rename to src/locales/whitelist_pt.json
diff --git a/app/soapbox/locales/whitelist_ro.json b/src/locales/whitelist_ro.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ro.json
rename to src/locales/whitelist_ro.json
diff --git a/app/soapbox/locales/whitelist_ru.json b/src/locales/whitelist_ru.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ru.json
rename to src/locales/whitelist_ru.json
diff --git a/app/soapbox/locales/whitelist_sk.json b/src/locales/whitelist_sk.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sk.json
rename to src/locales/whitelist_sk.json
diff --git a/app/soapbox/locales/whitelist_sl.json b/src/locales/whitelist_sl.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sl.json
rename to src/locales/whitelist_sl.json
diff --git a/app/soapbox/locales/whitelist_sq.json b/src/locales/whitelist_sq.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sq.json
rename to src/locales/whitelist_sq.json
diff --git a/app/soapbox/locales/whitelist_sr-Latn.json b/src/locales/whitelist_sr-Latn.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sr-Latn.json
rename to src/locales/whitelist_sr-Latn.json
diff --git a/app/soapbox/locales/whitelist_sr.json b/src/locales/whitelist_sr.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sr.json
rename to src/locales/whitelist_sr.json
diff --git a/app/soapbox/locales/whitelist_sv.json b/src/locales/whitelist_sv.json
similarity index 100%
rename from app/soapbox/locales/whitelist_sv.json
rename to src/locales/whitelist_sv.json
diff --git a/app/soapbox/locales/whitelist_ta.json b/src/locales/whitelist_ta.json
similarity index 100%
rename from app/soapbox/locales/whitelist_ta.json
rename to src/locales/whitelist_ta.json
diff --git a/app/soapbox/locales/whitelist_te.json b/src/locales/whitelist_te.json
similarity index 100%
rename from app/soapbox/locales/whitelist_te.json
rename to src/locales/whitelist_te.json
diff --git a/app/soapbox/locales/whitelist_th.json b/src/locales/whitelist_th.json
similarity index 100%
rename from app/soapbox/locales/whitelist_th.json
rename to src/locales/whitelist_th.json
diff --git a/app/soapbox/locales/whitelist_tr.json b/src/locales/whitelist_tr.json
similarity index 100%
rename from app/soapbox/locales/whitelist_tr.json
rename to src/locales/whitelist_tr.json
diff --git a/app/soapbox/locales/whitelist_uk.json b/src/locales/whitelist_uk.json
similarity index 100%
rename from app/soapbox/locales/whitelist_uk.json
rename to src/locales/whitelist_uk.json
diff --git a/app/soapbox/locales/whitelist_zh-CN.json b/src/locales/whitelist_zh-CN.json
similarity index 100%
rename from app/soapbox/locales/whitelist_zh-CN.json
rename to src/locales/whitelist_zh-CN.json
diff --git a/app/soapbox/locales/whitelist_zh-HK.json b/src/locales/whitelist_zh-HK.json
similarity index 100%
rename from app/soapbox/locales/whitelist_zh-HK.json
rename to src/locales/whitelist_zh-HK.json
diff --git a/app/soapbox/locales/whitelist_zh-TW.json b/src/locales/whitelist_zh-TW.json
similarity index 100%
rename from app/soapbox/locales/whitelist_zh-TW.json
rename to src/locales/whitelist_zh-TW.json
diff --git a/app/soapbox/locales/zh-CN.json b/src/locales/zh-CN.json
similarity index 100%
rename from app/soapbox/locales/zh-CN.json
rename to src/locales/zh-CN.json
diff --git a/app/soapbox/locales/zh-HK.json b/src/locales/zh-HK.json
similarity index 100%
rename from app/soapbox/locales/zh-HK.json
rename to src/locales/zh-HK.json
diff --git a/app/soapbox/locales/zh-TW.json b/src/locales/zh-TW.json
similarity index 100%
rename from app/soapbox/locales/zh-TW.json
rename to src/locales/zh-TW.json
diff --git a/app/soapbox/main.tsx b/src/main.tsx
similarity index 91%
rename from app/soapbox/main.tsx
rename to src/main.tsx
index 7045b0637..74d967b01 100644
--- a/app/soapbox/main.tsx
+++ b/src/main.tsx
@@ -17,9 +17,9 @@ import '@fontsource/roboto-mono/400.css';
import 'line-awesome/dist/font-awesome-line-awesome/css/all.css';
import 'react-datepicker/dist/react-datepicker.css';
-import '../soapbox/iframe';
-import '../styles/application.scss';
-import '../styles/tailwind.css';
+import './iframe';
+import './styles/application.scss';
+import './styles/tailwind.css';
import './precheck';
import { default as Soapbox } from './containers/soapbox';
diff --git a/app/soapbox/messages.ts b/src/messages.ts
similarity index 95%
rename from app/soapbox/messages.ts
rename to src/messages.ts
index c7aebb4d4..e180908ec 100644
--- a/app/soapbox/messages.ts
+++ b/src/messages.ts
@@ -4,7 +4,7 @@ type MessageModule = { default: MessageJson };
/** Import custom messages */
const importCustom = async (locale: string): Promise => {
try {
- return await import(`../../custom/locales/${locale}.json`);
+ return await import(`../custom/locales/${locale}.json`);
} catch {
return ({ default: {} });
}
diff --git a/app/soapbox/middleware/errors.ts b/src/middleware/errors.ts
similarity index 100%
rename from app/soapbox/middleware/errors.ts
rename to src/middleware/errors.ts
diff --git a/app/soapbox/middleware/sounds.ts b/src/middleware/sounds.ts
similarity index 97%
rename from app/soapbox/middleware/sounds.ts
rename to src/middleware/sounds.ts
index a1055701c..4f9167135 100644
--- a/app/soapbox/middleware/sounds.ts
+++ b/src/middleware/sounds.ts
@@ -1,5 +1,3 @@
-'use strict';
-
import { AnyAction } from 'redux';
import { play, soundCache } from 'soapbox/utils/sounds';
diff --git a/app/soapbox/monitoring.ts b/src/monitoring.ts
similarity index 100%
rename from app/soapbox/monitoring.ts
rename to src/monitoring.ts
diff --git a/app/soapbox/normalizers/__tests__/account.test.ts b/src/normalizers/__tests__/account.test.ts
similarity index 97%
rename from app/soapbox/normalizers/__tests__/account.test.ts
rename to src/normalizers/__tests__/account.test.ts
index 6c2abc2b3..a51917866 100644
--- a/app/soapbox/normalizers/__tests__/account.test.ts
+++ b/src/normalizers/__tests__/account.test.ts
@@ -2,8 +2,8 @@ import { Record as ImmutableRecord, fromJS } from 'immutable';
import { normalizeAccount } from '../account';
-const AVATAR_MISSING = require('assets/images/avatar-missing.png');
-const HEADER_MISSING = require('assets/images/header-missing.png');
+const AVATAR_MISSING = require('soapbox/assets/images/avatar-missing.png');
+const HEADER_MISSING = require('soapbox/assets/images/header-missing.png');
describe('normalizeAccount()', () => {
it('adds base fields', () => {
diff --git a/app/soapbox/normalizers/__tests__/attachment.test.ts b/src/normalizers/__tests__/attachment.test.ts
similarity index 100%
rename from app/soapbox/normalizers/__tests__/attachment.test.ts
rename to src/normalizers/__tests__/attachment.test.ts
diff --git a/app/soapbox/normalizers/__tests__/chat-message.test.ts b/src/normalizers/__tests__/chat-message.test.ts
similarity index 100%
rename from app/soapbox/normalizers/__tests__/chat-message.test.ts
rename to src/normalizers/__tests__/chat-message.test.ts
diff --git a/app/soapbox/normalizers/__tests__/instance.test.ts b/src/normalizers/__tests__/instance.test.ts
similarity index 100%
rename from app/soapbox/normalizers/__tests__/instance.test.ts
rename to src/normalizers/__tests__/instance.test.ts
diff --git a/app/soapbox/normalizers/__tests__/mention.test.ts b/src/normalizers/__tests__/mention.test.ts
similarity index 100%
rename from app/soapbox/normalizers/__tests__/mention.test.ts
rename to src/normalizers/__tests__/mention.test.ts
diff --git a/app/soapbox/normalizers/__tests__/notification.test.ts b/src/normalizers/__tests__/notification.test.ts
similarity index 100%
rename from app/soapbox/normalizers/__tests__/notification.test.ts
rename to src/normalizers/__tests__/notification.test.ts
diff --git a/app/soapbox/normalizers/__tests__/status.test.ts b/src/normalizers/__tests__/status.test.ts
similarity index 95%
rename from app/soapbox/normalizers/__tests__/status.test.ts
rename to src/normalizers/__tests__/status.test.ts
index 0024a212c..05dd29e6a 100644
--- a/app/soapbox/normalizers/__tests__/status.test.ts
+++ b/src/normalizers/__tests__/status.test.ts
@@ -198,10 +198,4 @@ describe('normalizeStatus()', () => {
expect(card.type).toEqual('link');
expect(card.provider_url).toEqual('https://soapbox.pub');
});
-
- it('preserves Truth Social external_video_id', () => {
- const status = require('soapbox/__fixtures__/truthsocial-status-with-external-video.json');
- const result = normalizeStatus(status);
- expect(result.media_attachments.get(0)?.external_video_id).toBe('vwfnq9');
- });
});
diff --git a/app/soapbox/normalizers/account.ts b/src/normalizers/account.ts
similarity index 98%
rename from app/soapbox/normalizers/account.ts
rename to src/normalizers/account.ts
index 21c15dc68..74a84e46b 100644
--- a/app/soapbox/normalizers/account.ts
+++ b/src/normalizers/account.ts
@@ -100,7 +100,7 @@ const normalizePleromaLegacyFields = (account: ImmutableMap) => {
const normalizeAvatar = (account: ImmutableMap) => {
const avatar = account.get('avatar');
const avatarStatic = account.get('avatar_static');
- const missing = require('assets/images/avatar-missing.png');
+ const missing = require('soapbox/assets/images/avatar-missing.png');
return account.withMutations(account => {
account.set('avatar', avatar || avatarStatic || missing);
@@ -112,7 +112,7 @@ const normalizeAvatar = (account: ImmutableMap) => {
const normalizeHeader = (account: ImmutableMap) => {
const header = account.get('header');
const headerStatic = account.get('header_static');
- const missing = require('assets/images/header-missing.png');
+ const missing = require('soapbox/assets/images/header-missing.png');
return account.withMutations(account => {
account.set('header', header || headerStatic || missing);
diff --git a/app/soapbox/normalizers/admin-account.ts b/src/normalizers/admin-account.ts
similarity index 100%
rename from app/soapbox/normalizers/admin-account.ts
rename to src/normalizers/admin-account.ts
diff --git a/app/soapbox/normalizers/admin-report.ts b/src/normalizers/admin-report.ts
similarity index 100%
rename from app/soapbox/normalizers/admin-report.ts
rename to src/normalizers/admin-report.ts
diff --git a/app/soapbox/normalizers/announcement-reaction.ts b/src/normalizers/announcement-reaction.ts
similarity index 100%
rename from app/soapbox/normalizers/announcement-reaction.ts
rename to src/normalizers/announcement-reaction.ts
diff --git a/app/soapbox/normalizers/announcement.ts b/src/normalizers/announcement.ts
similarity index 100%
rename from app/soapbox/normalizers/announcement.ts
rename to src/normalizers/announcement.ts
diff --git a/app/soapbox/normalizers/attachment.ts b/src/normalizers/attachment.ts
similarity index 96%
rename from app/soapbox/normalizers/attachment.ts
rename to src/normalizers/attachment.ts
index f5e00135e..b63337adc 100644
--- a/app/soapbox/normalizers/attachment.ts
+++ b/src/normalizers/attachment.ts
@@ -15,7 +15,6 @@ import { mergeDefined } from 'soapbox/utils/normalizers';
export const AttachmentRecord = ImmutableRecord({
blurhash: undefined,
description: '',
- external_video_id: null as string | null, // TruthSocial
id: '',
meta: ImmutableMap(),
pleroma: ImmutableMap(),
diff --git a/app/soapbox/normalizers/chat-message.ts b/src/normalizers/chat-message.ts
similarity index 100%
rename from app/soapbox/normalizers/chat-message.ts
rename to src/normalizers/chat-message.ts
diff --git a/app/soapbox/normalizers/chat.ts b/src/normalizers/chat.ts
similarity index 100%
rename from app/soapbox/normalizers/chat.ts
rename to src/normalizers/chat.ts
diff --git a/app/soapbox/normalizers/emoji.ts b/src/normalizers/emoji.ts
similarity index 100%
rename from app/soapbox/normalizers/emoji.ts
rename to src/normalizers/emoji.ts
diff --git a/app/soapbox/normalizers/filter-keyword.ts b/src/normalizers/filter-keyword.ts
similarity index 100%
rename from app/soapbox/normalizers/filter-keyword.ts
rename to src/normalizers/filter-keyword.ts
diff --git a/app/soapbox/normalizers/filter-result.ts b/src/normalizers/filter-result.ts
similarity index 100%
rename from app/soapbox/normalizers/filter-result.ts
rename to src/normalizers/filter-result.ts
diff --git a/app/soapbox/normalizers/filter-status.ts b/src/normalizers/filter-status.ts
similarity index 100%
rename from app/soapbox/normalizers/filter-status.ts
rename to src/normalizers/filter-status.ts
diff --git a/app/soapbox/normalizers/filter.ts b/src/normalizers/filter.ts
similarity index 100%
rename from app/soapbox/normalizers/filter.ts
rename to src/normalizers/filter.ts
diff --git a/app/soapbox/normalizers/group-relationship.ts b/src/normalizers/group-relationship.ts
similarity index 100%
rename from app/soapbox/normalizers/group-relationship.ts
rename to src/normalizers/group-relationship.ts
diff --git a/app/soapbox/normalizers/group.ts b/src/normalizers/group.ts
similarity index 97%
rename from app/soapbox/normalizers/group.ts
rename to src/normalizers/group.ts
index c5f34aafb..ebe10ed89 100644
--- a/app/soapbox/normalizers/group.ts
+++ b/src/normalizers/group.ts
@@ -53,7 +53,7 @@ export const GroupRecord = ImmutableRecord({
const normalizeAvatar = (group: ImmutableMap) => {
const avatar = group.get('avatar');
const avatarStatic = group.get('avatar_static');
- const missing = require('assets/images/avatar-missing.png');
+ const missing = require('soapbox/assets/images/avatar-missing.png');
return group.withMutations(group => {
group.set('avatar', avatar || avatarStatic || missing);
@@ -65,7 +65,7 @@ const normalizeAvatar = (group: ImmutableMap) => {
const normalizeHeader = (group: ImmutableMap) => {
const header = group.get('header');
const headerStatic = group.get('header_static');
- const missing = require('assets/images/header-missing.png');
+ const missing = require('soapbox/assets/images/header-missing.png');
return group.withMutations(group => {
group.set('header', header || headerStatic || missing);
diff --git a/app/soapbox/normalizers/history.ts b/src/normalizers/history.ts
similarity index 100%
rename from app/soapbox/normalizers/history.ts
rename to src/normalizers/history.ts
diff --git a/app/soapbox/normalizers/index.ts b/src/normalizers/index.ts
similarity index 100%
rename from app/soapbox/normalizers/index.ts
rename to src/normalizers/index.ts
diff --git a/app/soapbox/normalizers/instance.ts b/src/normalizers/instance.ts
similarity index 98%
rename from app/soapbox/normalizers/instance.ts
rename to src/normalizers/instance.ts
index b198c7b6a..ea3327fb6 100644
--- a/app/soapbox/normalizers/instance.ts
+++ b/src/normalizers/instance.ts
@@ -102,7 +102,7 @@ const getAttachmentLimit = (software: string | null) => software === PLEROMA ? I
const normalizeVersion = (instance: ImmutableMap) => {
return instance.update('version', '0.0.0', version => {
// Handle Mastodon release candidates
- if (new RegExp(/[0-9\.]+rc[0-9]+/g).test(version)) {
+ if (new RegExp(/[0-9.]+rc[0-9]+/g).test(version)) {
return version.split('rc').join('-rc');
} else {
return version;
diff --git a/app/soapbox/normalizers/list.ts b/src/normalizers/list.ts
similarity index 100%
rename from app/soapbox/normalizers/list.ts
rename to src/normalizers/list.ts
diff --git a/app/soapbox/normalizers/location.ts b/src/normalizers/location.ts
similarity index 100%
rename from app/soapbox/normalizers/location.ts
rename to src/normalizers/location.ts
diff --git a/app/soapbox/normalizers/mention.ts b/src/normalizers/mention.ts
similarity index 100%
rename from app/soapbox/normalizers/mention.ts
rename to src/normalizers/mention.ts
diff --git a/app/soapbox/normalizers/notification.ts b/src/normalizers/notification.ts
similarity index 100%
rename from app/soapbox/normalizers/notification.ts
rename to src/normalizers/notification.ts
diff --git a/app/soapbox/normalizers/soapbox/__tests__/soapbox-config.test.ts b/src/normalizers/soapbox/__tests__/soapbox-config.test.ts
similarity index 100%
rename from app/soapbox/normalizers/soapbox/__tests__/soapbox-config.test.ts
rename to src/normalizers/soapbox/__tests__/soapbox-config.test.ts
diff --git a/app/soapbox/normalizers/soapbox/soapbox-config.ts b/src/normalizers/soapbox/soapbox-config.ts
similarity index 88%
rename from app/soapbox/normalizers/soapbox/soapbox-config.ts
rename to src/normalizers/soapbox/soapbox-config.ts
index d003f75e0..4f25992ef 100644
--- a/app/soapbox/normalizers/soapbox/soapbox-config.ts
+++ b/src/normalizers/soapbox/soapbox-config.ts
@@ -6,8 +6,6 @@ import {
} from 'immutable';
import trimStart from 'lodash/trimStart';
-import { adSchema } from 'soapbox/schemas';
-import { filteredArray } from 'soapbox/schemas/utils';
import { normalizeUsername } from 'soapbox/utils/input';
import { toTailwind } from 'soapbox/utils/tailwind';
import { generateAccent } from 'soapbox/utils/theme';
@@ -124,15 +122,6 @@ export const SoapboxConfigRecord = ImmutableRecord({
type SoapboxConfigMap = ImmutableMap;
-const normalizeAds = (soapboxConfig: SoapboxConfigMap): SoapboxConfigMap => {
- if (soapboxConfig.has('ads')) {
- const ads = filteredArray(adSchema).parse(ImmutableList(soapboxConfig.get('ads')).toJS());
- return soapboxConfig.set('ads', ads);
- } else {
- return soapboxConfig;
- }
-};
-
const normalizeCryptoAddress = (address: unknown): CryptoAddress => {
return CryptoAddressRecord(ImmutableMap(fromJS(address))).update('ticker', ticker => {
return trimStart(ticker, '$').toLowerCase();
@@ -188,19 +177,6 @@ const normalizeFooterLinks = (soapboxConfig: SoapboxConfigMap): SoapboxConfigMap
return soapboxConfig.setIn(path, items);
};
-/** Migrate legacy ads config. */
-const normalizeAdsAlgorithm = (soapboxConfig: SoapboxConfigMap): SoapboxConfigMap => {
- const interval = soapboxConfig.getIn(['extensions', 'ads', 'interval']);
- const algorithm = soapboxConfig.getIn(['extensions', 'ads', 'algorithm']);
-
- if (typeof interval === 'number' && !algorithm) {
- const result = fromJS(['linear', { interval }]);
- return soapboxConfig.setIn(['extensions', 'ads', 'algorithm'], result);
- } else {
- return soapboxConfig;
- }
-};
-
/** Single user mode is now managed by `redirectRootNoLogin`. */
const upgradeSingleUserMode = (soapboxConfig: SoapboxConfigMap): SoapboxConfigMap => {
const singleUserMode = soapboxConfig.get('singleUserMode') as boolean | undefined;
@@ -250,8 +226,6 @@ export const normalizeSoapboxConfig = (soapboxConfig: Record) => {
normalizeFooterLinks(soapboxConfig);
maybeAddMissingColors(soapboxConfig);
normalizeCryptoAddresses(soapboxConfig);
- normalizeAds(soapboxConfig);
- normalizeAdsAlgorithm(soapboxConfig);
upgradeSingleUserMode(soapboxConfig);
normalizeRedirectRootNoLogin(soapboxConfig);
}),
diff --git a/app/soapbox/normalizers/status-edit.ts b/src/normalizers/status-edit.ts
similarity index 100%
rename from app/soapbox/normalizers/status-edit.ts
rename to src/normalizers/status-edit.ts
diff --git a/app/soapbox/normalizers/status.ts b/src/normalizers/status.ts
similarity index 100%
rename from app/soapbox/normalizers/status.ts
rename to src/normalizers/status.ts
diff --git a/app/soapbox/normalizers/tag.ts b/src/normalizers/tag.ts
similarity index 100%
rename from app/soapbox/normalizers/tag.ts
rename to src/normalizers/tag.ts
diff --git a/app/soapbox/pages/admin-page.tsx b/src/pages/admin-page.tsx
similarity index 100%
rename from app/soapbox/pages/admin-page.tsx
rename to src/pages/admin-page.tsx
diff --git a/app/soapbox/pages/chats-page.tsx b/src/pages/chats-page.tsx
similarity index 100%
rename from app/soapbox/pages/chats-page.tsx
rename to src/pages/chats-page.tsx
diff --git a/app/soapbox/pages/default-page.tsx b/src/pages/default-page.tsx
similarity index 100%
rename from app/soapbox/pages/default-page.tsx
rename to src/pages/default-page.tsx
diff --git a/app/soapbox/pages/empty-page.tsx b/src/pages/empty-page.tsx
similarity index 100%
rename from app/soapbox/pages/empty-page.tsx
rename to src/pages/empty-page.tsx
diff --git a/app/soapbox/pages/event-page.tsx b/src/pages/event-page.tsx
similarity index 100%
rename from app/soapbox/pages/event-page.tsx
rename to src/pages/event-page.tsx
diff --git a/app/soapbox/pages/events-page.tsx b/src/pages/events-page.tsx
similarity index 100%
rename from app/soapbox/pages/events-page.tsx
rename to src/pages/events-page.tsx
diff --git a/app/soapbox/pages/group-page.tsx b/src/pages/group-page.tsx
similarity index 97%
rename from app/soapbox/pages/group-page.tsx
rename to src/pages/group-page.tsx
index 8983b57e2..85dc8b9db 100644
--- a/app/soapbox/pages/group-page.tsx
+++ b/src/pages/group-page.tsx
@@ -4,7 +4,7 @@ import { useRouteMatch } from 'react-router-dom';
import { useGroup, useGroupMembershipRequests } from 'soapbox/api/hooks';
import GroupLookupHoc from 'soapbox/components/hoc/group-lookup-hoc';
-import { Column, Icon, Layout, Stack, Text } from 'soapbox/components/ui';
+import { Column, Icon, Layout, Stack, Text, Tabs } from 'soapbox/components/ui';
import GroupHeader from 'soapbox/features/group/components/group-header';
import LinkFooter from 'soapbox/features/ui/components/link-footer';
import BundleContainer from 'soapbox/features/ui/containers/bundle-container';
@@ -16,8 +16,6 @@ import {
} from 'soapbox/features/ui/util/async-components';
import { useFeatures, useOwnAccount } from 'soapbox/hooks';
-import { Tabs } from '../components/ui';
-
import type { Group } from 'soapbox/schemas';
const messages = defineMessages({
diff --git a/app/soapbox/pages/groups-page.tsx b/src/pages/groups-page.tsx
similarity index 100%
rename from app/soapbox/pages/groups-page.tsx
rename to src/pages/groups-page.tsx
diff --git a/app/soapbox/pages/groups-pending-page.tsx b/src/pages/groups-pending-page.tsx
similarity index 100%
rename from app/soapbox/pages/groups-pending-page.tsx
rename to src/pages/groups-pending-page.tsx
diff --git a/app/soapbox/pages/home-page.tsx b/src/pages/home-page.tsx
similarity index 100%
rename from app/soapbox/pages/home-page.tsx
rename to src/pages/home-page.tsx
diff --git a/app/soapbox/pages/manage-groups-page.tsx b/src/pages/manage-groups-page.tsx
similarity index 100%
rename from app/soapbox/pages/manage-groups-page.tsx
rename to src/pages/manage-groups-page.tsx
diff --git a/app/soapbox/pages/profile-page.tsx b/src/pages/profile-page.tsx
similarity index 100%
rename from app/soapbox/pages/profile-page.tsx
rename to src/pages/profile-page.tsx
diff --git a/app/soapbox/pages/remote-instance-page.tsx b/src/pages/remote-instance-page.tsx
similarity index 100%
rename from app/soapbox/pages/remote-instance-page.tsx
rename to src/pages/remote-instance-page.tsx
diff --git a/app/soapbox/pages/search-page.tsx b/src/pages/search-page.tsx
similarity index 100%
rename from app/soapbox/pages/search-page.tsx
rename to src/pages/search-page.tsx
diff --git a/app/soapbox/pages/status-page.tsx b/src/pages/status-page.tsx
similarity index 100%
rename from app/soapbox/pages/status-page.tsx
rename to src/pages/status-page.tsx
diff --git a/app/soapbox/polyfills.ts b/src/polyfills.ts
similarity index 100%
rename from app/soapbox/polyfills.ts
rename to src/polyfills.ts
diff --git a/app/soapbox/precheck.ts b/src/precheck.ts
similarity index 100%
rename from app/soapbox/precheck.ts
rename to src/precheck.ts
diff --git a/app/soapbox/queries/__mocks__/client.ts b/src/queries/__mocks__/client.ts
similarity index 100%
rename from app/soapbox/queries/__mocks__/client.ts
rename to src/queries/__mocks__/client.ts
diff --git a/app/soapbox/queries/__tests__/carousels.test.ts b/src/queries/__tests__/carousels.test.ts
similarity index 100%
rename from app/soapbox/queries/__tests__/carousels.test.ts
rename to src/queries/__tests__/carousels.test.ts
diff --git a/app/soapbox/queries/__tests__/chats.test.ts b/src/queries/__tests__/chats.test.ts
similarity index 100%
rename from app/soapbox/queries/__tests__/chats.test.ts
rename to src/queries/__tests__/chats.test.ts
diff --git a/app/soapbox/queries/__tests__/relationships.test.ts b/src/queries/__tests__/relationships.test.ts
similarity index 100%
rename from app/soapbox/queries/__tests__/relationships.test.ts
rename to src/queries/__tests__/relationships.test.ts
diff --git a/app/soapbox/queries/__tests__/suggestions.test.ts b/src/queries/__tests__/suggestions.test.ts
similarity index 100%
rename from app/soapbox/queries/__tests__/suggestions.test.ts
rename to src/queries/__tests__/suggestions.test.ts
diff --git a/app/soapbox/queries/__tests__/trends.test.ts b/src/queries/__tests__/trends.test.ts
similarity index 100%
rename from app/soapbox/queries/__tests__/trends.test.ts
rename to src/queries/__tests__/trends.test.ts
diff --git a/app/soapbox/queries/accounts.ts b/src/queries/accounts.ts
similarity index 100%
rename from app/soapbox/queries/accounts.ts
rename to src/queries/accounts.ts
diff --git a/app/soapbox/queries/carousels.ts b/src/queries/carousels.ts
similarity index 100%
rename from app/soapbox/queries/carousels.ts
rename to src/queries/carousels.ts
diff --git a/app/soapbox/queries/chats.ts b/src/queries/chats.ts
similarity index 100%
rename from app/soapbox/queries/chats.ts
rename to src/queries/chats.ts
diff --git a/app/soapbox/queries/client.ts b/src/queries/client.ts
similarity index 100%
rename from app/soapbox/queries/client.ts
rename to src/queries/client.ts
diff --git a/app/soapbox/queries/embed.ts b/src/queries/embed.ts
similarity index 100%
rename from app/soapbox/queries/embed.ts
rename to src/queries/embed.ts
diff --git a/app/soapbox/queries/policies.ts b/src/queries/policies.ts
similarity index 100%
rename from app/soapbox/queries/policies.ts
rename to src/queries/policies.ts
diff --git a/app/soapbox/queries/relationships.ts b/src/queries/relationships.ts
similarity index 100%
rename from app/soapbox/queries/relationships.ts
rename to src/queries/relationships.ts
diff --git a/app/soapbox/queries/search.ts b/src/queries/search.ts
similarity index 100%
rename from app/soapbox/queries/search.ts
rename to src/queries/search.ts
diff --git a/app/soapbox/queries/suggestions.ts b/src/queries/suggestions.ts
similarity index 100%
rename from app/soapbox/queries/suggestions.ts
rename to src/queries/suggestions.ts
diff --git a/app/soapbox/queries/trends.ts b/src/queries/trends.ts
similarity index 100%
rename from app/soapbox/queries/trends.ts
rename to src/queries/trends.ts
diff --git a/app/soapbox/ready.ts b/src/ready.ts
similarity index 93%
rename from app/soapbox/ready.ts
rename to src/ready.ts
index f74b03694..4ba42b1f4 100644
--- a/app/soapbox/ready.ts
+++ b/src/ready.ts
@@ -1,5 +1,3 @@
-'use strict';
-
export default function ready(loaded: () => void): void {
if (['interactive', 'complete'].includes(document.readyState)) {
loaded();
diff --git a/app/soapbox/reducers/__tests__/admin.test.ts b/src/reducers/__tests__/admin.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/admin.test.ts
rename to src/reducers/__tests__/admin.test.ts
diff --git a/app/soapbox/reducers/__tests__/announcements.test.ts b/src/reducers/__tests__/announcements.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/announcements.test.ts
rename to src/reducers/__tests__/announcements.test.ts
diff --git a/app/soapbox/reducers/__tests__/auth.test.ts b/src/reducers/__tests__/auth.test.ts
similarity index 98%
rename from app/soapbox/reducers/__tests__/auth.test.ts
rename to src/reducers/__tests__/auth.test.ts
index d461b3ddd..b6daa1614 100644
--- a/app/soapbox/reducers/__tests__/auth.test.ts
+++ b/src/reducers/__tests__/auth.test.ts
@@ -11,9 +11,8 @@ import {
import { ME_FETCH_SKIP } from 'soapbox/actions/me';
import { MASTODON_PRELOAD_IMPORT } from 'soapbox/actions/preload';
import { buildAccount } from 'soapbox/jest/factory';
-import { AuthAppRecord, AuthTokenRecord, AuthUserRecord, ReducerRecord } from 'soapbox/reducers/auth';
-import reducer from '../auth';
+import reducer, { AuthAppRecord, AuthTokenRecord, AuthUserRecord, ReducerRecord } from '../auth';
describe('auth reducer', () => {
it('should return the initial state', () => {
diff --git a/app/soapbox/reducers/__tests__/compose.test.ts b/src/reducers/__tests__/compose.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/compose.test.ts
rename to src/reducers/__tests__/compose.test.ts
diff --git a/app/soapbox/reducers/__tests__/contexts.test.ts b/src/reducers/__tests__/contexts.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/contexts.test.ts
rename to src/reducers/__tests__/contexts.test.ts
diff --git a/app/soapbox/reducers/__tests__/conversations.test.ts b/src/reducers/__tests__/conversations.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/conversations.test.ts
rename to src/reducers/__tests__/conversations.test.ts
diff --git a/app/soapbox/reducers/__tests__/custom-emojis.test.ts b/src/reducers/__tests__/custom-emojis.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/custom-emojis.test.ts
rename to src/reducers/__tests__/custom-emojis.test.ts
diff --git a/app/soapbox/reducers/__tests__/domain-lists.test.ts b/src/reducers/__tests__/domain-lists.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/domain-lists.test.ts
rename to src/reducers/__tests__/domain-lists.test.ts
diff --git a/app/soapbox/reducers/__tests__/dropdown-menu.test.ts b/src/reducers/__tests__/dropdown-menu.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/dropdown-menu.test.ts
rename to src/reducers/__tests__/dropdown-menu.test.ts
diff --git a/app/soapbox/reducers/__tests__/filters.test.ts b/src/reducers/__tests__/filters.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/filters.test.ts
rename to src/reducers/__tests__/filters.test.ts
diff --git a/app/soapbox/reducers/__tests__/index.test.ts b/src/reducers/__tests__/index.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/index.test.ts
rename to src/reducers/__tests__/index.test.ts
diff --git a/app/soapbox/reducers/__tests__/instance.test.ts b/src/reducers/__tests__/instance.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/instance.test.ts
rename to src/reducers/__tests__/instance.test.ts
diff --git a/app/soapbox/reducers/__tests__/list-adder.test.ts b/src/reducers/__tests__/list-adder.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/list-adder.test.ts
rename to src/reducers/__tests__/list-adder.test.ts
diff --git a/app/soapbox/reducers/__tests__/lists.test.ts b/src/reducers/__tests__/lists.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/lists.test.ts
rename to src/reducers/__tests__/lists.test.ts
diff --git a/app/soapbox/reducers/__tests__/me.test.ts b/src/reducers/__tests__/me.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/me.test.ts
rename to src/reducers/__tests__/me.test.ts
diff --git a/app/soapbox/reducers/__tests__/meta.test.ts b/src/reducers/__tests__/meta.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/meta.test.ts
rename to src/reducers/__tests__/meta.test.ts
diff --git a/app/soapbox/reducers/__tests__/modals.test.ts b/src/reducers/__tests__/modals.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/modals.test.ts
rename to src/reducers/__tests__/modals.test.ts
diff --git a/app/soapbox/reducers/__tests__/mutes.test.ts b/src/reducers/__tests__/mutes.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/mutes.test.ts
rename to src/reducers/__tests__/mutes.test.ts
diff --git a/app/soapbox/reducers/__tests__/onboarding.test.ts b/src/reducers/__tests__/onboarding.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/onboarding.test.ts
rename to src/reducers/__tests__/onboarding.test.ts
diff --git a/app/soapbox/reducers/__tests__/polls.test.ts b/src/reducers/__tests__/polls.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/polls.test.ts
rename to src/reducers/__tests__/polls.test.ts
diff --git a/app/soapbox/reducers/__tests__/push-notifications.test.ts b/src/reducers/__tests__/push-notifications.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/push-notifications.test.ts
rename to src/reducers/__tests__/push-notifications.test.ts
diff --git a/app/soapbox/reducers/__tests__/relationships.test.ts b/src/reducers/__tests__/relationships.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/relationships.test.ts
rename to src/reducers/__tests__/relationships.test.ts
diff --git a/app/soapbox/reducers/__tests__/reports.test.ts b/src/reducers/__tests__/reports.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/reports.test.ts
rename to src/reducers/__tests__/reports.test.ts
diff --git a/app/soapbox/reducers/__tests__/rules.test.ts b/src/reducers/__tests__/rules.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/rules.test.ts
rename to src/reducers/__tests__/rules.test.ts
diff --git a/app/soapbox/reducers/__tests__/settings.test.ts b/src/reducers/__tests__/settings.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/settings.test.ts
rename to src/reducers/__tests__/settings.test.ts
diff --git a/app/soapbox/reducers/__tests__/sidebar.test.ts b/src/reducers/__tests__/sidebar.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/sidebar.test.ts
rename to src/reducers/__tests__/sidebar.test.ts
diff --git a/app/soapbox/reducers/__tests__/soapbox.test.ts b/src/reducers/__tests__/soapbox.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/soapbox.test.ts
rename to src/reducers/__tests__/soapbox.test.ts
diff --git a/app/soapbox/reducers/__tests__/status-hover-card.test.tsx b/src/reducers/__tests__/status-hover-card.test.tsx
similarity index 100%
rename from app/soapbox/reducers/__tests__/status-hover-card.test.tsx
rename to src/reducers/__tests__/status-hover-card.test.tsx
diff --git a/app/soapbox/reducers/__tests__/status-lists.test.ts b/src/reducers/__tests__/status-lists.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/status-lists.test.ts
rename to src/reducers/__tests__/status-lists.test.ts
diff --git a/app/soapbox/reducers/__tests__/statuses.test.ts b/src/reducers/__tests__/statuses.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/statuses.test.ts
rename to src/reducers/__tests__/statuses.test.ts
diff --git a/app/soapbox/reducers/__tests__/suggestions.test.ts b/src/reducers/__tests__/suggestions.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/suggestions.test.ts
rename to src/reducers/__tests__/suggestions.test.ts
diff --git a/app/soapbox/reducers/__tests__/timelines.test.ts b/src/reducers/__tests__/timelines.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/timelines.test.ts
rename to src/reducers/__tests__/timelines.test.ts
diff --git a/app/soapbox/reducers/__tests__/trends.test.ts b/src/reducers/__tests__/trends.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/trends.test.ts
rename to src/reducers/__tests__/trends.test.ts
diff --git a/app/soapbox/reducers/__tests__/user-lists.test.ts b/src/reducers/__tests__/user-lists.test.ts
similarity index 100%
rename from app/soapbox/reducers/__tests__/user-lists.test.ts
rename to src/reducers/__tests__/user-lists.test.ts
diff --git a/app/soapbox/reducers/accounts-meta.ts b/src/reducers/accounts-meta.ts
similarity index 100%
rename from app/soapbox/reducers/accounts-meta.ts
rename to src/reducers/accounts-meta.ts
diff --git a/app/soapbox/reducers/accounts.ts b/src/reducers/accounts.ts
similarity index 100%
rename from app/soapbox/reducers/accounts.ts
rename to src/reducers/accounts.ts
diff --git a/app/soapbox/reducers/admin-announcements.ts b/src/reducers/admin-announcements.ts
similarity index 100%
rename from app/soapbox/reducers/admin-announcements.ts
rename to src/reducers/admin-announcements.ts
diff --git a/app/soapbox/reducers/admin-log.ts b/src/reducers/admin-log.ts
similarity index 100%
rename from app/soapbox/reducers/admin-log.ts
rename to src/reducers/admin-log.ts
diff --git a/app/soapbox/reducers/admin-user-index.ts b/src/reducers/admin-user-index.ts
similarity index 100%
rename from app/soapbox/reducers/admin-user-index.ts
rename to src/reducers/admin-user-index.ts
diff --git a/app/soapbox/reducers/admin.ts b/src/reducers/admin.ts
similarity index 100%
rename from app/soapbox/reducers/admin.ts
rename to src/reducers/admin.ts
diff --git a/app/soapbox/reducers/aliases.ts b/src/reducers/aliases.ts
similarity index 100%
rename from app/soapbox/reducers/aliases.ts
rename to src/reducers/aliases.ts
diff --git a/app/soapbox/reducers/announcements.ts b/src/reducers/announcements.ts
similarity index 100%
rename from app/soapbox/reducers/announcements.ts
rename to src/reducers/announcements.ts
diff --git a/app/soapbox/reducers/auth.ts b/src/reducers/auth.ts
similarity index 100%
rename from app/soapbox/reducers/auth.ts
rename to src/reducers/auth.ts
diff --git a/app/soapbox/reducers/backups.tsx b/src/reducers/backups.tsx
similarity index 100%
rename from app/soapbox/reducers/backups.tsx
rename to src/reducers/backups.tsx
diff --git a/app/soapbox/reducers/chat-message-lists.ts b/src/reducers/chat-message-lists.ts
similarity index 100%
rename from app/soapbox/reducers/chat-message-lists.ts
rename to src/reducers/chat-message-lists.ts
diff --git a/app/soapbox/reducers/chat-messages.ts b/src/reducers/chat-messages.ts
similarity index 100%
rename from app/soapbox/reducers/chat-messages.ts
rename to src/reducers/chat-messages.ts
diff --git a/app/soapbox/reducers/chats.ts b/src/reducers/chats.ts
similarity index 100%
rename from app/soapbox/reducers/chats.ts
rename to src/reducers/chats.ts
diff --git a/app/soapbox/reducers/compose-event.ts b/src/reducers/compose-event.ts
similarity index 100%
rename from app/soapbox/reducers/compose-event.ts
rename to src/reducers/compose-event.ts
diff --git a/app/soapbox/reducers/compose.ts b/src/reducers/compose.ts
similarity index 100%
rename from app/soapbox/reducers/compose.ts
rename to src/reducers/compose.ts
diff --git a/app/soapbox/reducers/contexts.ts b/src/reducers/contexts.ts
similarity index 100%
rename from app/soapbox/reducers/contexts.ts
rename to src/reducers/contexts.ts
diff --git a/app/soapbox/reducers/conversations.ts b/src/reducers/conversations.ts
similarity index 100%
rename from app/soapbox/reducers/conversations.ts
rename to src/reducers/conversations.ts
diff --git a/app/soapbox/reducers/custom-emojis.ts b/src/reducers/custom-emojis.ts
similarity index 100%
rename from app/soapbox/reducers/custom-emojis.ts
rename to src/reducers/custom-emojis.ts
diff --git a/app/soapbox/reducers/domain-lists.ts b/src/reducers/domain-lists.ts
similarity index 100%
rename from app/soapbox/reducers/domain-lists.ts
rename to src/reducers/domain-lists.ts
diff --git a/app/soapbox/reducers/dropdown-menu.ts b/src/reducers/dropdown-menu.ts
similarity index 100%
rename from app/soapbox/reducers/dropdown-menu.ts
rename to src/reducers/dropdown-menu.ts
diff --git a/app/soapbox/reducers/filters.ts b/src/reducers/filters.ts
similarity index 100%
rename from app/soapbox/reducers/filters.ts
rename to src/reducers/filters.ts
diff --git a/app/soapbox/reducers/followed-tags.ts b/src/reducers/followed-tags.ts
similarity index 100%
rename from app/soapbox/reducers/followed-tags.ts
rename to src/reducers/followed-tags.ts
diff --git a/app/soapbox/reducers/group-memberships.ts b/src/reducers/group-memberships.ts
similarity index 100%
rename from app/soapbox/reducers/group-memberships.ts
rename to src/reducers/group-memberships.ts
diff --git a/app/soapbox/reducers/group-relationships.ts b/src/reducers/group-relationships.ts
similarity index 100%
rename from app/soapbox/reducers/group-relationships.ts
rename to src/reducers/group-relationships.ts
diff --git a/app/soapbox/reducers/groups.ts b/src/reducers/groups.ts
similarity index 100%
rename from app/soapbox/reducers/groups.ts
rename to src/reducers/groups.ts
diff --git a/app/soapbox/reducers/history.ts b/src/reducers/history.ts
similarity index 100%
rename from app/soapbox/reducers/history.ts
rename to src/reducers/history.ts
diff --git a/app/soapbox/reducers/index.ts b/src/reducers/index.ts
similarity index 98%
rename from app/soapbox/reducers/index.ts
rename to src/reducers/index.ts
index 0c567df5b..a30369561 100644
--- a/app/soapbox/reducers/index.ts
+++ b/src/reducers/index.ts
@@ -64,7 +64,6 @@ import timelines from './timelines';
import trending_statuses from './trending-statuses';
import trends from './trends';
import user_lists from './user-lists';
-import verification from './verification';
const reducers = {
accounts_meta,
@@ -127,7 +126,6 @@ const reducers = {
trending_statuses,
trends,
user_lists,
- verification,
};
// Build a default state from all reducers: it has the key and `undefined`
diff --git a/app/soapbox/reducers/instance.ts b/src/reducers/instance.ts
similarity index 100%
rename from app/soapbox/reducers/instance.ts
rename to src/reducers/instance.ts
diff --git a/app/soapbox/reducers/list-adder.ts b/src/reducers/list-adder.ts
similarity index 100%
rename from app/soapbox/reducers/list-adder.ts
rename to src/reducers/list-adder.ts
diff --git a/app/soapbox/reducers/list-editor.ts b/src/reducers/list-editor.ts
similarity index 100%
rename from app/soapbox/reducers/list-editor.ts
rename to src/reducers/list-editor.ts
diff --git a/app/soapbox/reducers/lists.ts b/src/reducers/lists.ts
similarity index 100%
rename from app/soapbox/reducers/lists.ts
rename to src/reducers/lists.ts
diff --git a/app/soapbox/reducers/locations.ts b/src/reducers/locations.ts
similarity index 100%
rename from app/soapbox/reducers/locations.ts
rename to src/reducers/locations.ts
diff --git a/app/soapbox/reducers/me.ts b/src/reducers/me.ts
similarity index 100%
rename from app/soapbox/reducers/me.ts
rename to src/reducers/me.ts
diff --git a/app/soapbox/reducers/meta.ts b/src/reducers/meta.ts
similarity index 98%
rename from app/soapbox/reducers/meta.ts
rename to src/reducers/meta.ts
index fdce05e3e..923a89c1b 100644
--- a/app/soapbox/reducers/meta.ts
+++ b/src/reducers/meta.ts
@@ -1,5 +1,3 @@
-'use strict';
-
import { Record as ImmutableRecord } from 'immutable';
import { fetchInstance } from 'soapbox/actions/instance';
diff --git a/app/soapbox/reducers/modals.ts b/src/reducers/modals.ts
similarity index 100%
rename from app/soapbox/reducers/modals.ts
rename to src/reducers/modals.ts
diff --git a/app/soapbox/reducers/mutes.ts b/src/reducers/mutes.ts
similarity index 100%
rename from app/soapbox/reducers/mutes.ts
rename to src/reducers/mutes.ts
diff --git a/app/soapbox/reducers/notifications.ts b/src/reducers/notifications.ts
similarity index 100%
rename from app/soapbox/reducers/notifications.ts
rename to src/reducers/notifications.ts
diff --git a/app/soapbox/reducers/onboarding.ts b/src/reducers/onboarding.ts
similarity index 100%
rename from app/soapbox/reducers/onboarding.ts
rename to src/reducers/onboarding.ts
diff --git a/app/soapbox/reducers/patron.ts b/src/reducers/patron.ts
similarity index 100%
rename from app/soapbox/reducers/patron.ts
rename to src/reducers/patron.ts
diff --git a/app/soapbox/reducers/pending-statuses.ts b/src/reducers/pending-statuses.ts
similarity index 100%
rename from app/soapbox/reducers/pending-statuses.ts
rename to src/reducers/pending-statuses.ts
diff --git a/app/soapbox/reducers/polls.ts b/src/reducers/polls.ts
similarity index 100%
rename from app/soapbox/reducers/polls.ts
rename to src/reducers/polls.ts
diff --git a/app/soapbox/reducers/profile-hover-card.ts b/src/reducers/profile-hover-card.ts
similarity index 100%
rename from app/soapbox/reducers/profile-hover-card.ts
rename to src/reducers/profile-hover-card.ts
diff --git a/app/soapbox/reducers/push-notifications.ts b/src/reducers/push-notifications.ts
similarity index 100%
rename from app/soapbox/reducers/push-notifications.ts
rename to src/reducers/push-notifications.ts
diff --git a/app/soapbox/reducers/relationships.ts b/src/reducers/relationships.ts
similarity index 100%
rename from app/soapbox/reducers/relationships.ts
rename to src/reducers/relationships.ts
diff --git a/app/soapbox/reducers/reports.ts b/src/reducers/reports.ts
similarity index 100%
rename from app/soapbox/reducers/reports.ts
rename to src/reducers/reports.ts
diff --git a/app/soapbox/reducers/rules.ts b/src/reducers/rules.ts
similarity index 100%
rename from app/soapbox/reducers/rules.ts
rename to src/reducers/rules.ts
diff --git a/app/soapbox/reducers/scheduled-statuses.ts b/src/reducers/scheduled-statuses.ts
similarity index 100%
rename from app/soapbox/reducers/scheduled-statuses.ts
rename to src/reducers/scheduled-statuses.ts
diff --git a/app/soapbox/reducers/search.ts b/src/reducers/search.ts
similarity index 100%
rename from app/soapbox/reducers/search.ts
rename to src/reducers/search.ts
diff --git a/app/soapbox/reducers/security.ts b/src/reducers/security.ts
similarity index 100%
rename from app/soapbox/reducers/security.ts
rename to src/reducers/security.ts
diff --git a/app/soapbox/reducers/settings.ts b/src/reducers/settings.ts
similarity index 100%
rename from app/soapbox/reducers/settings.ts
rename to src/reducers/settings.ts
diff --git a/app/soapbox/reducers/sidebar.ts b/src/reducers/sidebar.ts
similarity index 100%
rename from app/soapbox/reducers/sidebar.ts
rename to src/reducers/sidebar.ts
diff --git a/app/soapbox/reducers/soapbox.ts b/src/reducers/soapbox.ts
similarity index 100%
rename from app/soapbox/reducers/soapbox.ts
rename to src/reducers/soapbox.ts
diff --git a/app/soapbox/reducers/status-hover-card.ts b/src/reducers/status-hover-card.ts
similarity index 100%
rename from app/soapbox/reducers/status-hover-card.ts
rename to src/reducers/status-hover-card.ts
diff --git a/app/soapbox/reducers/status-lists.ts b/src/reducers/status-lists.ts
similarity index 100%
rename from app/soapbox/reducers/status-lists.ts
rename to src/reducers/status-lists.ts
diff --git a/app/soapbox/reducers/statuses.ts b/src/reducers/statuses.ts
similarity index 100%
rename from app/soapbox/reducers/statuses.ts
rename to src/reducers/statuses.ts
diff --git a/app/soapbox/reducers/suggestions.ts b/src/reducers/suggestions.ts
similarity index 98%
rename from app/soapbox/reducers/suggestions.ts
rename to src/reducers/suggestions.ts
index 81d0d9a2f..52fbb2a0d 100644
--- a/app/soapbox/reducers/suggestions.ts
+++ b/src/reducers/suggestions.ts
@@ -11,10 +11,9 @@ import {
SUGGESTIONS_V2_FETCH_SUCCESS,
SUGGESTIONS_V2_FETCH_FAIL,
SUGGESTIONS_TRUTH_FETCH_SUCCESS,
+ type SuggestedProfile,
} from 'soapbox/actions/suggestions';
-import { SuggestedProfile } from '../actions/suggestions';
-
import type { AnyAction } from 'redux';
import type { APIEntity } from 'soapbox/types/entities';
diff --git a/app/soapbox/reducers/tags.ts b/src/reducers/tags.ts
similarity index 100%
rename from app/soapbox/reducers/tags.ts
rename to src/reducers/tags.ts
diff --git a/app/soapbox/reducers/timelines.ts b/src/reducers/timelines.ts
similarity index 100%
rename from app/soapbox/reducers/timelines.ts
rename to src/reducers/timelines.ts
diff --git a/app/soapbox/reducers/trending-statuses.ts b/src/reducers/trending-statuses.ts
similarity index 100%
rename from app/soapbox/reducers/trending-statuses.ts
rename to src/reducers/trending-statuses.ts
diff --git a/app/soapbox/reducers/trends.ts b/src/reducers/trends.ts
similarity index 100%
rename from app/soapbox/reducers/trends.ts
rename to src/reducers/trends.ts
diff --git a/app/soapbox/reducers/user-lists.ts b/src/reducers/user-lists.ts
similarity index 100%
rename from app/soapbox/reducers/user-lists.ts
rename to src/reducers/user-lists.ts
diff --git a/app/soapbox/rtl.ts b/src/rtl.ts
similarity index 88%
rename from app/soapbox/rtl.ts
rename to src/rtl.ts
index 16a6100ef..d14518acc 100644
--- a/app/soapbox/rtl.ts
+++ b/src/rtl.ts
@@ -1,5 +1,3 @@
-'use strict';
-
// U+0590 to U+05FF - Hebrew
// U+0600 to U+06FF - Arabic
// U+0700 to U+074F - Syriac
@@ -25,8 +23,8 @@ export function isRtl(text: string): boolean {
text = text.replace(/(mailto:)([^\s@]+@[^\s@]+\.[^\s@]+)/g, '');
// Remove Phone numbe links
text = text.replace(/(tel:)([+\d\s()-]+)/g, '');
- text = text.replace(/(?:^|[^\/\w])@([a-z0-9_]+(@[a-z0-9\.\-]+)?)/ig, '');
- text = text.replace(/(?:^|[^\/\w])#([\S]+)/ig, '');
+ text = text.replace(/(?:^|[^/\w])@([a-z0-9_]+(@[a-z0-9.-]+)?)/ig, '');
+ text = text.replace(/(?:^|[^/\w])#([\S]+)/ig, '');
text = text.replace(/\s+/g, '');
const matches = text.match(rtlChars);
diff --git a/app/soapbox/schemas/__tests__/card.test.ts b/src/schemas/__tests__/card.test.ts
similarity index 100%
rename from app/soapbox/schemas/__tests__/card.test.ts
rename to src/schemas/__tests__/card.test.ts
diff --git a/app/soapbox/schemas/__tests__/group.test.ts b/src/schemas/__tests__/group.test.ts
similarity index 100%
rename from app/soapbox/schemas/__tests__/group.test.ts
rename to src/schemas/__tests__/group.test.ts
diff --git a/app/soapbox/schemas/__tests__/poll.test.ts b/src/schemas/__tests__/poll.test.ts
similarity index 100%
rename from app/soapbox/schemas/__tests__/poll.test.ts
rename to src/schemas/__tests__/poll.test.ts
diff --git a/app/soapbox/schemas/account.ts b/src/schemas/account.ts
similarity index 96%
rename from app/soapbox/schemas/account.ts
rename to src/schemas/account.ts
index a4881f4bc..88128c35e 100644
--- a/app/soapbox/schemas/account.ts
+++ b/src/schemas/account.ts
@@ -10,8 +10,8 @@ import { contentSchema, filteredArray, makeCustomEmojiMap } from './utils';
import type { Resolve } from 'soapbox/utils/types';
-const avatarMissing = require('assets/images/avatar-missing.png');
-const headerMissing = require('assets/images/header-missing.png');
+const avatarMissing = require('soapbox/assets/images/avatar-missing.png');
+const headerMissing = require('soapbox/assets/images/header-missing.png');
const birthdaySchema = z.string().regex(/^\d{4}-\d{2}-\d{2}$/);
diff --git a/app/soapbox/schemas/attachment.ts b/src/schemas/attachment.ts
similarity index 95%
rename from app/soapbox/schemas/attachment.ts
rename to src/schemas/attachment.ts
index 3df39d542..502de94e1 100644
--- a/app/soapbox/schemas/attachment.ts
+++ b/src/schemas/attachment.ts
@@ -15,7 +15,6 @@ const blurhashSchema = z.string().superRefine((value, ctx) => {
const baseAttachmentSchema = z.object({
blurhash: blurhashSchema.nullable().catch(null),
description: z.string().catch(''),
- external_video_id: z.string().optional().catch(undefined), // TruthSocial
id: z.string(),
pleroma: z.object({
mime_type: z.string().regex(/^\w+\/[-+.\w]+$/),
diff --git a/app/soapbox/schemas/card.ts b/src/schemas/card.ts
similarity index 100%
rename from app/soapbox/schemas/card.ts
rename to src/schemas/card.ts
diff --git a/app/soapbox/schemas/chat-message.ts b/src/schemas/chat-message.ts
similarity index 100%
rename from app/soapbox/schemas/chat-message.ts
rename to src/schemas/chat-message.ts
diff --git a/app/soapbox/schemas/custom-emoji.ts b/src/schemas/custom-emoji.ts
similarity index 100%
rename from app/soapbox/schemas/custom-emoji.ts
rename to src/schemas/custom-emoji.ts
diff --git a/app/soapbox/schemas/emoji-reaction.ts b/src/schemas/emoji-reaction.ts
similarity index 100%
rename from app/soapbox/schemas/emoji-reaction.ts
rename to src/schemas/emoji-reaction.ts
diff --git a/app/soapbox/schemas/event.ts b/src/schemas/event.ts
similarity index 100%
rename from app/soapbox/schemas/event.ts
rename to src/schemas/event.ts
diff --git a/app/soapbox/schemas/group-member.ts b/src/schemas/group-member.ts
similarity index 100%
rename from app/soapbox/schemas/group-member.ts
rename to src/schemas/group-member.ts
diff --git a/app/soapbox/schemas/group-relationship.ts b/src/schemas/group-relationship.ts
similarity index 100%
rename from app/soapbox/schemas/group-relationship.ts
rename to src/schemas/group-relationship.ts
diff --git a/app/soapbox/schemas/group-tag.ts b/src/schemas/group-tag.ts
similarity index 100%
rename from app/soapbox/schemas/group-tag.ts
rename to src/schemas/group-tag.ts
diff --git a/app/soapbox/schemas/group.ts b/src/schemas/group.ts
similarity index 93%
rename from app/soapbox/schemas/group.ts
rename to src/schemas/group.ts
index be9238308..9d97a4047 100644
--- a/app/soapbox/schemas/group.ts
+++ b/src/schemas/group.ts
@@ -9,8 +9,8 @@ import { groupRelationshipSchema } from './group-relationship';
import { groupTagSchema } from './group-tag';
import { filteredArray, makeCustomEmojiMap } from './utils';
-const avatarMissing = require('assets/images/avatar-missing.png');
-const headerMissing = require('assets/images/header-missing.png');
+const avatarMissing = require('soapbox/assets/images/avatar-missing.png');
+const headerMissing = require('soapbox/assets/images/header-missing.png');
const groupSchema = z.object({
avatar: z.string().catch(avatarMissing),
diff --git a/app/soapbox/schemas/index.ts b/src/schemas/index.ts
similarity index 94%
rename from app/soapbox/schemas/index.ts
rename to src/schemas/index.ts
index 2c99ef8b8..81b507ce5 100644
--- a/app/soapbox/schemas/index.ts
+++ b/src/schemas/index.ts
@@ -16,6 +16,3 @@ export { relationshipSchema, type Relationship } from './relationship';
export { statusSchema, type Status } from './status';
export { tagSchema, type Tag } from './tag';
export { tombstoneSchema, type Tombstone } from './tombstone';
-
-// Soapbox
-export { adSchema, type Ad } from './soapbox/ad';
\ No newline at end of file
diff --git a/app/soapbox/schemas/location.ts b/src/schemas/location.ts
similarity index 100%
rename from app/soapbox/schemas/location.ts
rename to src/schemas/location.ts
diff --git a/app/soapbox/schemas/mention.ts b/src/schemas/mention.ts
similarity index 100%
rename from app/soapbox/schemas/mention.ts
rename to src/schemas/mention.ts
diff --git a/app/soapbox/schemas/nostr.ts b/src/schemas/nostr.ts
similarity index 100%
rename from app/soapbox/schemas/nostr.ts
rename to src/schemas/nostr.ts
diff --git a/app/soapbox/schemas/notification.ts b/src/schemas/notification.ts
similarity index 100%
rename from app/soapbox/schemas/notification.ts
rename to src/schemas/notification.ts
diff --git a/app/soapbox/schemas/patron.ts b/src/schemas/patron.ts
similarity index 100%
rename from app/soapbox/schemas/patron.ts
rename to src/schemas/patron.ts
diff --git a/app/soapbox/schemas/poll.ts b/src/schemas/poll.ts
similarity index 100%
rename from app/soapbox/schemas/poll.ts
rename to src/schemas/poll.ts
diff --git a/app/soapbox/schemas/relationship.ts b/src/schemas/relationship.ts
similarity index 100%
rename from app/soapbox/schemas/relationship.ts
rename to src/schemas/relationship.ts
diff --git a/app/soapbox/schemas/soapbox/settings.ts b/src/schemas/soapbox/settings.ts
similarity index 100%
rename from app/soapbox/schemas/soapbox/settings.ts
rename to src/schemas/soapbox/settings.ts
diff --git a/app/soapbox/schemas/status.ts b/src/schemas/status.ts
similarity index 100%
rename from app/soapbox/schemas/status.ts
rename to src/schemas/status.ts
diff --git a/app/soapbox/schemas/tag.ts b/src/schemas/tag.ts
similarity index 100%
rename from app/soapbox/schemas/tag.ts
rename to src/schemas/tag.ts
diff --git a/app/soapbox/schemas/tombstone.ts b/src/schemas/tombstone.ts
similarity index 100%
rename from app/soapbox/schemas/tombstone.ts
rename to src/schemas/tombstone.ts
diff --git a/app/soapbox/schemas/utils.ts b/src/schemas/utils.ts
similarity index 100%
rename from app/soapbox/schemas/utils.ts
rename to src/schemas/utils.ts
diff --git a/app/soapbox/selectors/index.ts b/src/selectors/index.ts
similarity index 100%
rename from app/soapbox/selectors/index.ts
rename to src/selectors/index.ts
diff --git a/app/soapbox/service-worker/sw.ts b/src/service-worker/sw.ts
similarity index 100%
rename from app/soapbox/service-worker/sw.ts
rename to src/service-worker/sw.ts
diff --git a/app/soapbox/service-worker/web-push-locales.ts b/src/service-worker/web-push-locales.ts
similarity index 100%
rename from app/soapbox/service-worker/web-push-locales.ts
rename to src/service-worker/web-push-locales.ts
diff --git a/app/soapbox/settings.ts b/src/settings.ts
similarity index 98%
rename from app/soapbox/settings.ts
rename to src/settings.ts
index e0ee05852..ce713f17e 100644
--- a/app/soapbox/settings.ts
+++ b/src/settings.ts
@@ -1,5 +1,3 @@
-'use strict';
-
export default class Settings {
keyBase: string | null = null;
diff --git a/app/soapbox/storage/kv-store.ts b/src/storage/kv-store.ts
similarity index 100%
rename from app/soapbox/storage/kv-store.ts
rename to src/storage/kv-store.ts
diff --git a/app/soapbox/store.ts b/src/store.ts
similarity index 100%
rename from app/soapbox/store.ts
rename to src/store.ts
diff --git a/app/soapbox/stream.ts b/src/stream.ts
similarity index 99%
rename from app/soapbox/stream.ts
rename to src/stream.ts
index a15ce02e8..a8bb88b63 100644
--- a/app/soapbox/stream.ts
+++ b/src/stream.ts
@@ -1,5 +1,3 @@
-'use strict';
-
import WebSocketClient from '@gamestdio/websocket';
import { getAccessToken } from 'soapbox/utils/auth';
diff --git a/app/styles/accessibility.scss b/src/styles/accessibility.scss
similarity index 100%
rename from app/styles/accessibility.scss
rename to src/styles/accessibility.scss
diff --git a/app/styles/application.scss b/src/styles/application.scss
similarity index 100%
rename from app/styles/application.scss
rename to src/styles/application.scss
diff --git a/app/styles/autosuggest.scss b/src/styles/autosuggest.scss
similarity index 100%
rename from app/styles/autosuggest.scss
rename to src/styles/autosuggest.scss
diff --git a/app/styles/basics.scss b/src/styles/basics.scss
similarity index 100%
rename from app/styles/basics.scss
rename to src/styles/basics.scss
diff --git a/app/styles/components/aliases.scss b/src/styles/components/aliases.scss
similarity index 100%
rename from app/styles/components/aliases.scss
rename to src/styles/components/aliases.scss
diff --git a/app/styles/components/audio-player.scss b/src/styles/components/audio-player.scss
similarity index 100%
rename from app/styles/components/audio-player.scss
rename to src/styles/components/audio-player.scss
diff --git a/app/styles/components/buttons.scss b/src/styles/components/buttons.scss
similarity index 100%
rename from app/styles/components/buttons.scss
rename to src/styles/components/buttons.scss
diff --git a/app/styles/components/columns.scss b/src/styles/components/columns.scss
similarity index 100%
rename from app/styles/components/columns.scss
rename to src/styles/components/columns.scss
diff --git a/app/styles/components/compose-form.scss b/src/styles/components/compose-form.scss
similarity index 100%
rename from app/styles/components/compose-form.scss
rename to src/styles/components/compose-form.scss
diff --git a/app/styles/components/crypto-donate.scss b/src/styles/components/crypto-donate.scss
similarity index 100%
rename from app/styles/components/crypto-donate.scss
rename to src/styles/components/crypto-donate.scss
diff --git a/app/styles/components/datepicker.scss b/src/styles/components/datepicker.scss
similarity index 100%
rename from app/styles/components/datepicker.scss
rename to src/styles/components/datepicker.scss
diff --git a/app/styles/components/detailed-status.scss b/src/styles/components/detailed-status.scss
similarity index 100%
rename from app/styles/components/detailed-status.scss
rename to src/styles/components/detailed-status.scss
diff --git a/app/styles/components/display-name.scss b/src/styles/components/display-name.scss
similarity index 100%
rename from app/styles/components/display-name.scss
rename to src/styles/components/display-name.scss
diff --git a/app/styles/components/icon.scss b/src/styles/components/icon.scss
similarity index 100%
rename from app/styles/components/icon.scss
rename to src/styles/components/icon.scss
diff --git a/app/styles/components/media-gallery.scss b/src/styles/components/media-gallery.scss
similarity index 100%
rename from app/styles/components/media-gallery.scss
rename to src/styles/components/media-gallery.scss
diff --git a/app/styles/components/modal.scss b/src/styles/components/modal.scss
similarity index 100%
rename from app/styles/components/modal.scss
rename to src/styles/components/modal.scss
diff --git a/app/styles/components/notification.scss b/src/styles/components/notification.scss
similarity index 100%
rename from app/styles/components/notification.scss
rename to src/styles/components/notification.scss
diff --git a/app/styles/components/reply-mentions.scss b/src/styles/components/reply-mentions.scss
similarity index 100%
rename from app/styles/components/reply-mentions.scss
rename to src/styles/components/reply-mentions.scss
diff --git a/app/styles/components/search.scss b/src/styles/components/search.scss
similarity index 100%
rename from app/styles/components/search.scss
rename to src/styles/components/search.scss
diff --git a/app/styles/components/status.scss b/src/styles/components/status.scss
similarity index 100%
rename from app/styles/components/status.scss
rename to src/styles/components/status.scss
diff --git a/app/styles/components/video-player.scss b/src/styles/components/video-player.scss
similarity index 100%
rename from app/styles/components/video-player.scss
rename to src/styles/components/video-player.scss
diff --git a/app/styles/emoji-picker.scss b/src/styles/emoji-picker.scss
similarity index 100%
rename from app/styles/emoji-picker.scss
rename to src/styles/emoji-picker.scss
diff --git a/app/styles/fonts.scss b/src/styles/fonts.scss
similarity index 100%
rename from app/styles/fonts.scss
rename to src/styles/fonts.scss
diff --git a/app/styles/forms.scss b/src/styles/forms.scss
similarity index 100%
rename from app/styles/forms.scss
rename to src/styles/forms.scss
diff --git a/app/styles/loading.scss b/src/styles/loading.scss
similarity index 100%
rename from app/styles/loading.scss
rename to src/styles/loading.scss
diff --git a/app/styles/navigation.scss b/src/styles/navigation.scss
similarity index 100%
rename from app/styles/navigation.scss
rename to src/styles/navigation.scss
diff --git a/app/styles/rtl.scss b/src/styles/rtl.scss
similarity index 100%
rename from app/styles/rtl.scss
rename to src/styles/rtl.scss
diff --git a/app/styles/tailwind.css b/src/styles/tailwind.css
similarity index 100%
rename from app/styles/tailwind.css
rename to src/styles/tailwind.css
diff --git a/app/styles/ui.scss b/src/styles/ui.scss
similarity index 100%
rename from app/styles/ui.scss
rename to src/styles/ui.scss
diff --git a/app/styles/utilities.scss b/src/styles/utilities.scss
similarity index 100%
rename from app/styles/utilities.scss
rename to src/styles/utilities.scss
diff --git a/app/styles/variables.scss b/src/styles/variables.scss
similarity index 100%
rename from app/styles/variables.scss
rename to src/styles/variables.scss
diff --git a/app/soapbox/toast.tsx b/src/toast.tsx
similarity index 100%
rename from app/soapbox/toast.tsx
rename to src/toast.tsx
diff --git a/app/soapbox/types/colors.ts b/src/types/colors.ts
similarity index 100%
rename from app/soapbox/types/colors.ts
rename to src/types/colors.ts
diff --git a/app/soapbox/types/entities.ts b/src/types/entities.ts
similarity index 100%
rename from app/soapbox/types/entities.ts
rename to src/types/entities.ts
diff --git a/app/soapbox/types/history.ts b/src/types/history.ts
similarity index 100%
rename from app/soapbox/types/history.ts
rename to src/types/history.ts
diff --git a/app/soapbox/types/nostr.ts b/src/types/nostr.ts
similarity index 100%
rename from app/soapbox/types/nostr.ts
rename to src/types/nostr.ts
diff --git a/app/soapbox/types/soapbox.ts b/src/types/soapbox.ts
similarity index 100%
rename from app/soapbox/types/soapbox.ts
rename to src/types/soapbox.ts
diff --git a/app/soapbox/types/window.d.ts b/src/types/window.d.ts
similarity index 100%
rename from app/soapbox/types/window.d.ts
rename to src/types/window.d.ts
diff --git a/app/soapbox/utils/__tests__/accounts.test.ts b/src/utils/__tests__/accounts.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/accounts.test.ts
rename to src/utils/__tests__/accounts.test.ts
diff --git a/app/soapbox/utils/__tests__/badges.test.ts b/src/utils/__tests__/badges.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/badges.test.ts
rename to src/utils/__tests__/badges.test.ts
diff --git a/app/soapbox/utils/__tests__/base64.test.ts b/src/utils/__tests__/base64.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/base64.test.ts
rename to src/utils/__tests__/base64.test.ts
diff --git a/app/soapbox/utils/__tests__/chats.test.ts b/src/utils/__tests__/chats.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/chats.test.ts
rename to src/utils/__tests__/chats.test.ts
diff --git a/app/soapbox/utils/__tests__/colors.test.ts b/src/utils/__tests__/colors.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/colors.test.ts
rename to src/utils/__tests__/colors.test.ts
diff --git a/app/soapbox/utils/__tests__/comparators.test.ts b/src/utils/__tests__/comparators.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/comparators.test.ts
rename to src/utils/__tests__/comparators.test.ts
diff --git a/app/soapbox/utils/__tests__/config-db.test.ts b/src/utils/__tests__/config-db.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/config-db.test.ts
rename to src/utils/__tests__/config-db.test.ts
diff --git a/app/soapbox/utils/__tests__/emoji-reacts.test.ts b/src/utils/__tests__/emoji-reacts.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/emoji-reacts.test.ts
rename to src/utils/__tests__/emoji-reacts.test.ts
diff --git a/app/soapbox/utils/__tests__/emoji.test.ts b/src/utils/__tests__/emoji.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/emoji.test.ts
rename to src/utils/__tests__/emoji.test.ts
diff --git a/app/soapbox/utils/__tests__/features.test.ts b/src/utils/__tests__/features.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/features.test.ts
rename to src/utils/__tests__/features.test.ts
diff --git a/app/soapbox/utils/__tests__/html.test.ts b/src/utils/__tests__/html.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/html.test.ts
rename to src/utils/__tests__/html.test.ts
diff --git a/app/soapbox/utils/__tests__/input.test.ts b/src/utils/__tests__/input.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/input.test.ts
rename to src/utils/__tests__/input.test.ts
diff --git a/app/soapbox/utils/__tests__/media.test.ts b/src/utils/__tests__/media.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/media.test.ts
rename to src/utils/__tests__/media.test.ts
diff --git a/app/soapbox/utils/__tests__/numbers.test.tsx b/src/utils/__tests__/numbers.test.tsx
similarity index 100%
rename from app/soapbox/utils/__tests__/numbers.test.tsx
rename to src/utils/__tests__/numbers.test.tsx
diff --git a/app/soapbox/utils/__tests__/queries.test.ts b/src/utils/__tests__/queries.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/queries.test.ts
rename to src/utils/__tests__/queries.test.ts
diff --git a/app/soapbox/utils/__tests__/status.test.ts b/src/utils/__tests__/status.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/status.test.ts
rename to src/utils/__tests__/status.test.ts
diff --git a/app/soapbox/utils/__tests__/tailwind.test.ts b/src/utils/__tests__/tailwind.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/tailwind.test.ts
rename to src/utils/__tests__/tailwind.test.ts
diff --git a/app/soapbox/utils/__tests__/timelines.test.ts b/src/utils/__tests__/timelines.test.ts
similarity index 100%
rename from app/soapbox/utils/__tests__/timelines.test.ts
rename to src/utils/__tests__/timelines.test.ts
diff --git a/app/soapbox/utils/accounts.ts b/src/utils/accounts.ts
similarity index 90%
rename from app/soapbox/utils/accounts.ts
rename to src/utils/accounts.ts
index a51ed9aad..51122dfc5 100644
--- a/app/soapbox/utils/accounts.ts
+++ b/src/utils/accounts.ts
@@ -37,7 +37,7 @@ export const isRemote = (account: Pick): boolean => !isLocal(ac
const DEFAULT_HEADERS: string[] = [
'/headers/original/missing.png', // Mastodon
'/images/banner.png', // Pleroma
- require('assets/images/header-missing.png'), // header not provided by backend
+ require('soapbox/assets/images/header-missing.png'), // header not provided by backend
];
/** Check if the avatar is a default avatar */
@@ -49,7 +49,7 @@ export const isDefaultHeader = (url: string) => {
const DEFAULT_AVATARS = [
'/avatars/original/missing.png', // Mastodon
'/images/avi.png', // Pleroma
- require('assets/images/avatar-missing.png'), // avatar not provided by backend
+ require('soapbox/assets/images/avatar-missing.png'), // avatar not provided by backend
];
/** Check if the avatar is a default avatar */
diff --git a/app/soapbox/utils/auth.ts b/src/utils/auth.ts
similarity index 100%
rename from app/soapbox/utils/auth.ts
rename to src/utils/auth.ts
diff --git a/app/soapbox/utils/badges.ts b/src/utils/badges.ts
similarity index 100%
rename from app/soapbox/utils/badges.ts
rename to src/utils/badges.ts
diff --git a/app/soapbox/utils/base64.ts b/src/utils/base64.ts
similarity index 100%
rename from app/soapbox/utils/base64.ts
rename to src/utils/base64.ts
diff --git a/app/soapbox/utils/chats.ts b/src/utils/chats.ts
similarity index 100%
rename from app/soapbox/utils/chats.ts
rename to src/utils/chats.ts
diff --git a/app/soapbox/utils/code-compiletime.ts b/src/utils/code-compiletime.ts
similarity index 96%
rename from app/soapbox/utils/code-compiletime.ts
rename to src/utils/code-compiletime.ts
index 7b19b7ec2..b43c1d86e 100644
--- a/app/soapbox/utils/code-compiletime.ts
+++ b/src/utils/code-compiletime.ts
@@ -1,6 +1,6 @@
import { execSync } from 'node:child_process';
-import pkg from '../../../package.json';
+import pkg from '../../package.json';
const { CI_COMMIT_TAG, CI_COMMIT_REF_NAME, CI_COMMIT_SHA } = process.env;
diff --git a/app/soapbox/utils/code.ts b/src/utils/code.ts
similarity index 100%
rename from app/soapbox/utils/code.ts
rename to src/utils/code.ts
diff --git a/app/soapbox/utils/colors.ts b/src/utils/colors.ts
similarity index 100%
rename from app/soapbox/utils/colors.ts
rename to src/utils/colors.ts
diff --git a/app/soapbox/utils/comparators.ts b/src/utils/comparators.ts
similarity index 94%
rename from app/soapbox/utils/comparators.ts
rename to src/utils/comparators.ts
index ed91510e8..b664cdb6f 100644
--- a/app/soapbox/utils/comparators.ts
+++ b/src/utils/comparators.ts
@@ -1,5 +1,3 @@
-'use strict';
-
/**
* Compare numerical primary keys represented as strings.
* For example, '10' (as a string) is considered less than '9'
diff --git a/app/soapbox/utils/config-db.ts b/src/utils/config-db.ts
similarity index 100%
rename from app/soapbox/utils/config-db.ts
rename to src/utils/config-db.ts
diff --git a/app/soapbox/utils/console.ts b/src/utils/console.ts
similarity index 100%
rename from app/soapbox/utils/console.ts
rename to src/utils/console.ts
diff --git a/app/soapbox/utils/copy.ts b/src/utils/copy.ts
similarity index 100%
rename from app/soapbox/utils/copy.ts
rename to src/utils/copy.ts
diff --git a/app/soapbox/utils/download.ts b/src/utils/download.ts
similarity index 100%
rename from app/soapbox/utils/download.ts
rename to src/utils/download.ts
diff --git a/app/soapbox/utils/emoji-reacts.ts b/src/utils/emoji-reacts.ts
similarity index 100%
rename from app/soapbox/utils/emoji-reacts.ts
rename to src/utils/emoji-reacts.ts
diff --git a/app/soapbox/utils/emoji.ts b/src/utils/emoji.ts
similarity index 100%
rename from app/soapbox/utils/emoji.ts
rename to src/utils/emoji.ts
diff --git a/app/soapbox/utils/errors.ts b/src/utils/errors.ts
similarity index 100%
rename from app/soapbox/utils/errors.ts
rename to src/utils/errors.ts
diff --git a/app/soapbox/utils/ethereum.ts b/src/utils/ethereum.ts
similarity index 100%
rename from app/soapbox/utils/ethereum.ts
rename to src/utils/ethereum.ts
diff --git a/app/soapbox/utils/favicon-service.ts b/src/utils/favicon-service.ts
similarity index 100%
rename from app/soapbox/utils/favicon-service.ts
rename to src/utils/favicon-service.ts
diff --git a/app/soapbox/utils/features.ts b/src/utils/features.ts
similarity index 99%
rename from app/soapbox/utils/features.ts
rename to src/utils/features.ts
index 9fb04b394..dc1a049c1 100644
--- a/app/soapbox/utils/features.ts
+++ b/src/utils/features.ts
@@ -734,14 +734,6 @@ const getInstanceFeatures = (instance: Instance) => {
*/
paginatedContext: v.software === TRUTHSOCIAL,
- /**
- * Require minimum password requirements.
- * - 8 characters
- * - 1 uppercase
- * - 1 lowercase
- */
- passwordRequirements: v.software === TRUTHSOCIAL,
-
/**
* Displays a form to follow a user when logged out.
* @see POST /main/ostatus
diff --git a/app/soapbox/utils/groups.ts b/src/utils/groups.ts
similarity index 100%
rename from app/soapbox/utils/groups.ts
rename to src/utils/groups.ts
diff --git a/app/soapbox/utils/html.ts b/src/utils/html.ts
similarity index 100%
rename from app/soapbox/utils/html.ts
rename to src/utils/html.ts
diff --git a/app/soapbox/utils/input.ts b/src/utils/input.ts
similarity index 100%
rename from app/soapbox/utils/input.ts
rename to src/utils/input.ts
diff --git a/app/soapbox/utils/legacy.ts b/src/utils/legacy.ts
similarity index 100%
rename from app/soapbox/utils/legacy.ts
rename to src/utils/legacy.ts
diff --git a/app/soapbox/utils/media-aspect-ratio.ts b/src/utils/media-aspect-ratio.ts
similarity index 100%
rename from app/soapbox/utils/media-aspect-ratio.ts
rename to src/utils/media-aspect-ratio.ts
diff --git a/app/soapbox/utils/media.ts b/src/utils/media.ts
similarity index 100%
rename from app/soapbox/utils/media.ts
rename to src/utils/media.ts
diff --git a/app/soapbox/utils/normalizers.ts b/src/utils/normalizers.ts
similarity index 100%
rename from app/soapbox/utils/normalizers.ts
rename to src/utils/normalizers.ts
diff --git a/app/soapbox/utils/nostr.ts b/src/utils/nostr.ts
similarity index 100%
rename from app/soapbox/utils/nostr.ts
rename to src/utils/nostr.ts
diff --git a/app/soapbox/utils/notification.ts b/src/utils/notification.ts
similarity index 100%
rename from app/soapbox/utils/notification.ts
rename to src/utils/notification.ts
diff --git a/app/soapbox/utils/numbers.tsx b/src/utils/numbers.tsx
similarity index 100%
rename from app/soapbox/utils/numbers.tsx
rename to src/utils/numbers.tsx
diff --git a/app/soapbox/utils/permissions.ts b/src/utils/permissions.ts
similarity index 100%
rename from app/soapbox/utils/permissions.ts
rename to src/utils/permissions.ts
diff --git a/app/soapbox/utils/phone.ts b/src/utils/phone.ts
similarity index 100%
rename from app/soapbox/utils/phone.ts
rename to src/utils/phone.ts
diff --git a/app/soapbox/utils/queries.ts b/src/utils/queries.ts
similarity index 100%
rename from app/soapbox/utils/queries.ts
rename to src/utils/queries.ts
diff --git a/app/soapbox/utils/quirks.ts b/src/utils/quirks.ts
similarity index 100%
rename from app/soapbox/utils/quirks.ts
rename to src/utils/quirks.ts
diff --git a/app/soapbox/utils/redirect.ts b/src/utils/redirect.ts
similarity index 100%
rename from app/soapbox/utils/redirect.ts
rename to src/utils/redirect.ts
diff --git a/app/soapbox/utils/resize-image.ts b/src/utils/resize-image.ts
similarity index 92%
rename from app/soapbox/utils/resize-image.ts
rename to src/utils/resize-image.ts
index 62c2d839b..e4f9001ad 100644
--- a/app/soapbox/utils/resize-image.ts
+++ b/src/utils/resize-image.ts
@@ -118,24 +118,25 @@ const loadImage = (inputFile: File) => new Promise((resolve, r
});
/** Get the exif orientation for the image. */
-const getOrientation = (img: HTMLImageElement, type = 'image/png') => new Promise(resolve => {
+async function getOrientation(img: HTMLImageElement, type = 'image/png'): Promise {
if (!['image/jpeg', 'image/webp'].includes(type)) {
- resolve(1);
- return;
+ return 1;
}
- import('exif-js').then(({ default: EXIF }) => {
- // @ts-ignore: The TypeScript definition is wrong.
- EXIF.getData(img, () => {
- const orientation = EXIF.getTag(img, 'Orientation');
- if (orientation !== 1) {
- dropOrientationIfNeeded(orientation).then(resolve).catch(() => resolve(orientation));
- } else {
- resolve(orientation);
- }
- });
- }).catch(() => {});
-});
+ try {
+ const exifr = await import('exifr');
+ const orientation = await exifr.orientation(img) ?? 1;
+
+ if (orientation !== 1) {
+ return await dropOrientationIfNeeded(orientation);
+ } else {
+ return orientation;
+ }
+ } catch (error) {
+ console.error('Failed to get orientation:', error);
+ return 1;
+ }
+}
const processImage = (
img: HTMLImageElement,
diff --git a/app/soapbox/utils/rich-content.ts b/src/utils/rich-content.ts
similarity index 100%
rename from app/soapbox/utils/rich-content.ts
rename to src/utils/rich-content.ts
diff --git a/app/soapbox/utils/scopes.ts b/src/utils/scopes.ts
similarity index 100%
rename from app/soapbox/utils/scopes.ts
rename to src/utils/scopes.ts
diff --git a/app/soapbox/utils/sounds.ts b/src/utils/sounds.ts
similarity index 82%
rename from app/soapbox/utils/sounds.ts
rename to src/utils/sounds.ts
index ad4c58250..0beab3e75 100644
--- a/app/soapbox/utils/sounds.ts
+++ b/src/utils/sounds.ts
@@ -35,21 +35,21 @@ const play = (audio: HTMLAudioElement): void => {
const soundCache: Record = {
boop: createAudio([
{
- src: require('../../assets/sounds/boop.ogg'),
+ src: require('../assets/sounds/boop.ogg'),
type: 'audio/ogg',
},
{
- src: require('../../assets/sounds/boop.mp3'),
+ src: require('../assets/sounds/boop.mp3'),
type: 'audio/mpeg',
},
]),
chat: createAudio([
{
- src: require('../../assets/sounds/chat.oga'),
+ src: require('../assets/sounds/chat.oga'),
type: 'audio/ogg',
},
{
- src: require('../../assets/sounds/chat.mp3'),
+ src: require('../assets/sounds/chat.mp3'),
type: 'audio/mpeg',
},
]),
diff --git a/app/soapbox/utils/state.ts b/src/utils/state.ts
similarity index 100%
rename from app/soapbox/utils/state.ts
rename to src/utils/state.ts
diff --git a/app/soapbox/utils/static.ts b/src/utils/static.ts
similarity index 100%
rename from app/soapbox/utils/static.ts
rename to src/utils/static.ts
diff --git a/app/soapbox/utils/status.ts b/src/utils/status.ts
similarity index 100%
rename from app/soapbox/utils/status.ts
rename to src/utils/status.ts
diff --git a/app/soapbox/utils/strings.ts b/src/utils/strings.ts
similarity index 100%
rename from app/soapbox/utils/strings.ts
rename to src/utils/strings.ts
diff --git a/app/soapbox/utils/suggestions.ts b/src/utils/suggestions.ts
similarity index 100%
rename from app/soapbox/utils/suggestions.ts
rename to src/utils/suggestions.ts
diff --git a/app/soapbox/utils/sw.ts b/src/utils/sw.ts
similarity index 100%
rename from app/soapbox/utils/sw.ts
rename to src/utils/sw.ts
diff --git a/app/soapbox/utils/tailwind.ts b/src/utils/tailwind.ts
similarity index 100%
rename from app/soapbox/utils/tailwind.ts
rename to src/utils/tailwind.ts
diff --git a/app/soapbox/utils/theme.ts b/src/utils/theme.ts
similarity index 100%
rename from app/soapbox/utils/theme.ts
rename to src/utils/theme.ts
diff --git a/app/soapbox/utils/timelines.ts b/src/utils/timelines.ts
similarity index 100%
rename from app/soapbox/utils/timelines.ts
rename to src/utils/timelines.ts
diff --git a/app/soapbox/utils/types.ts b/src/utils/types.ts
similarity index 100%
rename from app/soapbox/utils/types.ts
rename to src/utils/types.ts
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index a59998396..36b7a1efc 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -2,7 +2,7 @@ const { parseColorMatrix } = require('./tailwind/colors.cjs');
/** @type {import('tailwindcss').Config} */
module.exports = {
- content: ['./app/**/*.{html,js,ts,tsx}', './custom/instance/**/*.html', './app/index.ejs'],
+ content: ['./src/**/*.{html,js,ts,tsx}', './custom/instance/**/*.html', './index.html'],
darkMode: 'class',
theme: {
screens: {
diff --git a/tsconfig.json b/tsconfig.json
index 9d426c391..c7f16ba8a 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,7 @@
{
"compilerOptions": {
- "baseUrl": "app/",
- "outDir": "build/",
+ "baseUrl": "./",
+ "outDir": "dist",
"sourceMap": true,
"strict": true,
"module": "ESNext",
@@ -12,9 +12,17 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"esModuleInterop": true,
- "typeRoots": [ "./types", "./node_modules/@types"],
+ "paths": {
+ "soapbox/*": ["src/*"],
+ },
+ "typeRoots": [
+ "./src/types",
+ "./node_modules/@types",
+ "./node_modules"
+ ],
"types": [
"vite/client",
+ "vitest/globals",
"vite-plugin-compile-time/client"
]
},
diff --git a/vite.config.ts b/vite.config.ts
index 8917dc0bc..ca86db12d 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,5 +1,6 @@
///
-import path from 'path';
+import fs from 'node:fs';
+import { fileURLToPath, URL } from 'node:url';
import react from '@vitejs/plugin-react';
import { visualizer } from 'rollup-plugin-visualizer';
@@ -11,10 +12,7 @@ import vitePluginRequire from 'vite-plugin-require';
import { viteStaticCopy } from 'vite-plugin-static-copy';
export default defineConfig({
- root: 'app',
build: {
- // Relative to the root
- outDir: '../static',
assetsDir: 'packs',
assetsInlineLimit: 0,
rollupOptions: {
@@ -25,6 +23,7 @@ export default defineConfig({
},
},
},
+ assetsInclude: ['**/*.oga'],
server: {
port: 3036,
},
@@ -38,6 +37,11 @@ export default defineConfig({
collapseWhitespace: true,
removeComments: false,
},
+ inject: {
+ data: {
+ snippets: readFileContents('custom/snippets.html'),
+ },
+ },
}),
react({
// Use React plugin in all *.jsx and *.tsx files
@@ -62,13 +66,19 @@ export default defineConfig({
short_name: 'Soapbox',
description: 'A social media frontend with a focus on custom branding and ease of use.',
},
- srcDir: 'soapbox/service-worker',
+ srcDir: 'src/service-worker',
filename: 'sw.ts',
}),
viteStaticCopy({
targets: [{
- src: '../node_modules/twemoji/assets/svg/*',
+ src: './node_modules/twemoji/assets/svg/*',
dest: 'packs/emoji/',
+ }, {
+ src: './src/instance',
+ dest: '.',
+ }, {
+ src: './custom/instance',
+ dest: '.',
}],
}),
visualizer({
@@ -79,16 +89,21 @@ export default defineConfig({
],
resolve: {
alias: [
- { find: 'soapbox', replacement: path.resolve(__dirname, 'app', 'soapbox') },
- { find: 'assets', replacement: path.resolve(__dirname, 'app', 'assets') },
+ { find: 'soapbox', replacement: fileURLToPath(new URL('./src', import.meta.url)) },
],
},
- assetsInclude: ['**/*.oga'],
test: {
globals: true,
environment: 'jsdom',
- cache: {
- dir: '../node_modules/.vitest',
- },
+ setupFiles: 'src/jest/test-setup.ts',
},
-});
\ No newline at end of file
+});
+
+/** Return file as string, or return empty string if the file isn't found. */
+function readFileContents(path: string) {
+ try {
+ return fs.readFileSync(path, 'utf8');
+ } catch {
+ return '';
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index 7c8a4ad30..64bbbdb30 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,6 +7,11 @@
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+"@adobe/css-tools@^4.3.0":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28"
+ integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==
+
"@akryum/flexsearch-es@^0.7.32":
version "0.7.32"
resolved "https://registry.yarnpkg.com/@akryum/flexsearch-es/-/flexsearch-es-0.7.32.tgz#9d00e6bdf2418ae686323a4a9224b7a1568075e9"
@@ -1774,107 +1779,6 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@octokit/auth-token@^2.4.4":
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36"
- integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==
- dependencies:
- "@octokit/types" "^6.0.3"
-
-"@octokit/core@^3.5.1":
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085"
- integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==
- dependencies:
- "@octokit/auth-token" "^2.4.4"
- "@octokit/graphql" "^4.5.8"
- "@octokit/request" "^5.6.3"
- "@octokit/request-error" "^2.0.5"
- "@octokit/types" "^6.0.3"
- before-after-hook "^2.2.0"
- universal-user-agent "^6.0.0"
-
-"@octokit/endpoint@^6.0.1":
- version "6.0.12"
- resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658"
- integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==
- dependencies:
- "@octokit/types" "^6.0.3"
- is-plain-object "^5.0.0"
- universal-user-agent "^6.0.0"
-
-"@octokit/graphql@^4.5.8":
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3"
- integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==
- dependencies:
- "@octokit/request" "^5.6.0"
- "@octokit/types" "^6.0.3"
- universal-user-agent "^6.0.0"
-
-"@octokit/openapi-types@^12.1.0":
- version "12.1.0"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.1.0.tgz#a68b60e969f26dee0eb7d127c65a84967f2d3a6e"
- integrity sha512-kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA==
-
-"@octokit/plugin-paginate-rest@^2.16.8":
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.18.0.tgz#e412977782690a4134b0a4aa2f536cca7a2ca125"
- integrity sha512-n5/AzIoy5Wzp85gqzSbR+dWQDHlyHZrGijnDfLh452547Ynu0hCvszH7EfRE0eqM5ZjfkplO0k+q+P8AAIIJEA==
- dependencies:
- "@octokit/types" "^6.35.0"
-
-"@octokit/plugin-request-log@^1.0.4":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
- integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
-
-"@octokit/plugin-rest-endpoint-methods@^5.12.0":
- version "5.14.0"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.14.0.tgz#758e01ac40998e607feaea7f80220c69990814ae"
- integrity sha512-MRnMs4Dcm1OSaz/g/RLr4YY9otgysS7vN5SUkHGd7t+R8323cHsHFoEWHYPSmgUC0BieHRhvnCRWb4i3Pl+Lgg==
- dependencies:
- "@octokit/types" "^6.35.0"
- deprecation "^2.3.1"
-
-"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"
- integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==
- dependencies:
- "@octokit/types" "^6.0.3"
- deprecation "^2.0.0"
- once "^1.4.0"
-
-"@octokit/request@^5.6.0", "@octokit/request@^5.6.3":
- version "5.6.3"
- resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0"
- integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==
- dependencies:
- "@octokit/endpoint" "^6.0.1"
- "@octokit/request-error" "^2.1.0"
- "@octokit/types" "^6.16.1"
- is-plain-object "^5.0.0"
- node-fetch "^2.6.7"
- universal-user-agent "^6.0.0"
-
-"@octokit/rest@^16.43.0 || ^17.11.0 || ^18.12.0", "@octokit/rest@^18.12.0":
- version "18.12.0"
- resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881"
- integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==
- dependencies:
- "@octokit/core" "^3.5.1"
- "@octokit/plugin-paginate-rest" "^2.16.8"
- "@octokit/plugin-request-log" "^1.0.4"
- "@octokit/plugin-rest-endpoint-methods" "^5.12.0"
-
-"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.35.0":
- version "6.35.0"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.35.0.tgz#11cd9a679c32b4a6c36459ae2ec3ac4de0104f71"
- integrity sha512-DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==
- dependencies:
- "@octokit/openapi-types" "^12.1.0"
-
"@popperjs/core@^2.11.5", "@popperjs/core@^2.9.2":
version "2.11.5"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
@@ -2205,6 +2109,20 @@
lz-string "^1.5.0"
pretty-format "^27.0.2"
+"@testing-library/jest-dom@^6.1.3":
+ version "6.1.3"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz#443118c9e4043f96396f120de2c7122504a079c5"
+ integrity sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==
+ dependencies:
+ "@adobe/css-tools" "^4.3.0"
+ "@babel/runtime" "^7.9.2"
+ aria-query "^5.0.0"
+ chalk "^3.0.0"
+ css.escape "^1.5.1"
+ dom-accessibility-api "^0.5.6"
+ lodash "^4.17.15"
+ redent "^3.0.0"
+
"@testing-library/react-hooks@^8.0.1":
version "8.0.1"
resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12"
@@ -2222,10 +2140,10 @@
"@testing-library/dom" "^9.0.0"
"@types/react-dom" "^18.0.0"
-"@testing-library/user-event@^14.4.3":
- version "14.4.3"
- resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591"
- integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==
+"@testing-library/user-event@^14.5.1":
+ version "14.5.1"
+ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.1.tgz#27337d72046d5236b32fd977edee3f74c71d332f"
+ integrity sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==
"@tootallnate/once@2":
version "2.0.0"
@@ -2593,11 +2511,6 @@
dependencies:
schema-utils "*"
-"@types/seedrandom@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.2.tgz#7f30db28221067a90b02e73ffd46b6685b18df1a"
- integrity sha512-YPLqEOo0/X8JU3rdiq+RgUKtQhQtrppE766y7vMTu8dGML7TVtZNiiiaC/hhU9Zqw9UYopXxhuWWENclMVBwKQ==
-
"@types/semver@^7.3.9", "@types/semver@^7.5.0":
version "7.5.2"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564"
@@ -2908,13 +2821,6 @@ abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
-abort-controller@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
- integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
- dependencies:
- event-target-shim "^5.0.0"
-
acorn-import-assertions@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
@@ -2935,13 +2841,6 @@ acorn@^8.10.0, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
-agent-base@4, agent-base@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
- integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
- dependencies:
- es6-promisify "^5.0.0"
-
agent-base@6:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -3178,13 +3077,6 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-async-retry@1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0"
- integrity sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==
- dependencies:
- retry "0.12.0"
-
async@^3.2.3:
version "3.2.4"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
@@ -3229,10 +3121,10 @@ axe-core@^4.6.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.1.tgz#6948854183ee7e7eae336b9877c5bafa027998ea"
integrity sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==
-axios-mock-adapter@^1.21.1:
- version "1.21.1"
- resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.21.1.tgz#efe7e46ad1b0d2acd72188afa91c5720660777b3"
- integrity sha512-Pdm7nZuhkz/DSucQ4Bbo9qVBqfm9j7ev9ycTvIXHqvAjnJEjWPHKYfTfpounVp8MwjFFSHXGS7hCkTwAswtSTA==
+axios-mock-adapter@^1.22.0:
+ version "1.22.0"
+ resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz#0f3e6be0fc9b55baab06f2d49c0b71157e7c053d"
+ integrity sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==
dependencies:
fast-deep-equal "^3.1.3"
is-buffer "^2.0.5"
@@ -3334,11 +3226,6 @@ base64-arraybuffer-es6@^0.7.0:
resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.7.0.tgz#dbe1e6c87b1bf1ca2875904461a7de40f21abc86"
integrity sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==
-before-after-hook@^2.2.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e"
- integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==
-
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -3396,7 +3283,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.21.10, browserslist@^4.21.9:
+browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
@@ -3520,7 +3407,7 @@ chai@^4.3.7:
pathval "^1.1.1"
type-detect "^4.0.5"
-chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.2:
+chalk@^2.3.2, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3529,6 +3416,14 @@ chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -3615,10 +3510,10 @@ clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
-clsx@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12"
- integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==
+clsx@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b"
+ integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==
color-convert@^1.9.0:
version "1.9.3"
@@ -3659,19 +3554,14 @@ colorette@^2.0.16:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
-colors@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
- integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
-
-combined-stream@^1.0.6, combined-stream@^1.0.8:
+combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
-commander@^2.18.0, commander@^2.20.0:
+commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -3737,7 +3627,7 @@ core-js-compat@^3.31.0:
dependencies:
browserslist "^4.21.10"
-core-js@^3.27.2, core-js@^3.8.2:
+core-js@^3.27.2:
version "3.27.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.2.tgz#85b35453a424abdcacb97474797815f4d62ebbf7"
integrity sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==
@@ -3799,17 +3689,17 @@ cryptocurrency-icons@^0.18.1:
resolved "https://registry.yarnpkg.com/cryptocurrency-icons/-/cryptocurrency-icons-0.18.1.tgz#b1bdbfb4b78996ec003e63dbd7ec0b830d23b89c"
integrity sha512-dvR5O8JOmav3559Yb0Igpkia+3vpt/aeNvMu5ZIVUG2Bzpq9wNcOJRIQas49XJrPjtZ98GAEn3aDQO+w7uhS2w==
-css-declaration-sorter@^6.2.2:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02"
- integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==
+css-declaration-sorter@^6.3.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71"
+ integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==
css-functions-list@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee"
integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==
-css-select@^4.1.3, css-select@^4.2.1:
+css-select@^4.2.1:
version "4.3.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
@@ -3820,15 +3710,18 @@ css-select@^4.1.3, css-select@^4.2.1:
domutils "^2.8.0"
nth-check "^2.0.1"
-css-tree@^1.1.2, css-tree@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
- integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
dependencies:
- mdn-data "2.0.14"
- source-map "^0.6.1"
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
-css-tree@^2.3.1:
+css-tree@^2.2.1, css-tree@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
@@ -3836,71 +3729,83 @@ css-tree@^2.3.1:
mdn-data "2.0.30"
source-map-js "^1.0.1"
-css-what@^6.0.1:
+css-tree@~2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032"
+ integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==
+ dependencies:
+ mdn-data "2.0.28"
+ source-map-js "^1.0.1"
+
+css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+css.escape@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+ integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
+
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-cssnano-preset-default@^5.2.10:
- version "5.2.10"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz#6dfffe6cc3b13f3bb356a42c49a334a98700ef45"
- integrity sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA==
+cssnano-preset-default@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301"
+ integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==
dependencies:
- css-declaration-sorter "^6.2.2"
- cssnano-utils "^3.1.0"
- postcss-calc "^8.2.3"
- postcss-colormin "^5.3.0"
- postcss-convert-values "^5.1.2"
- postcss-discard-comments "^5.1.2"
- postcss-discard-duplicates "^5.1.0"
- postcss-discard-empty "^5.1.1"
- postcss-discard-overridden "^5.1.0"
- postcss-merge-longhand "^5.1.5"
- postcss-merge-rules "^5.1.2"
- postcss-minify-font-values "^5.1.0"
- postcss-minify-gradients "^5.1.1"
- postcss-minify-params "^5.1.3"
- postcss-minify-selectors "^5.2.1"
- postcss-normalize-charset "^5.1.0"
- postcss-normalize-display-values "^5.1.0"
- postcss-normalize-positions "^5.1.0"
- postcss-normalize-repeat-style "^5.1.0"
- postcss-normalize-string "^5.1.0"
- postcss-normalize-timing-functions "^5.1.0"
- postcss-normalize-unicode "^5.1.0"
- postcss-normalize-url "^5.1.0"
- postcss-normalize-whitespace "^5.1.1"
- postcss-ordered-values "^5.1.1"
- postcss-reduce-initial "^5.1.0"
- postcss-reduce-transforms "^5.1.0"
- postcss-svgo "^5.1.0"
- postcss-unique-selectors "^5.1.1"
+ css-declaration-sorter "^6.3.1"
+ cssnano-utils "^4.0.0"
+ postcss-calc "^9.0.0"
+ postcss-colormin "^6.0.0"
+ postcss-convert-values "^6.0.0"
+ postcss-discard-comments "^6.0.0"
+ postcss-discard-duplicates "^6.0.0"
+ postcss-discard-empty "^6.0.0"
+ postcss-discard-overridden "^6.0.0"
+ postcss-merge-longhand "^6.0.0"
+ postcss-merge-rules "^6.0.1"
+ postcss-minify-font-values "^6.0.0"
+ postcss-minify-gradients "^6.0.0"
+ postcss-minify-params "^6.0.0"
+ postcss-minify-selectors "^6.0.0"
+ postcss-normalize-charset "^6.0.0"
+ postcss-normalize-display-values "^6.0.0"
+ postcss-normalize-positions "^6.0.0"
+ postcss-normalize-repeat-style "^6.0.0"
+ postcss-normalize-string "^6.0.0"
+ postcss-normalize-timing-functions "^6.0.0"
+ postcss-normalize-unicode "^6.0.0"
+ postcss-normalize-url "^6.0.0"
+ postcss-normalize-whitespace "^6.0.0"
+ postcss-ordered-values "^6.0.0"
+ postcss-reduce-initial "^6.0.0"
+ postcss-reduce-transforms "^6.0.0"
+ postcss-svgo "^6.0.0"
+ postcss-unique-selectors "^6.0.0"
-cssnano-utils@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
- integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
+cssnano-utils@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08"
+ integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==
-cssnano@^5.1.10:
- version "5.1.10"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.10.tgz#fc6ddd9a4d7d238f320634326ed814cf0abf6e1c"
- integrity sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA==
+cssnano@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008"
+ integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==
dependencies:
- cssnano-preset-default "^5.2.10"
- lilconfig "^2.0.3"
- yaml "^1.10.2"
+ cssnano-preset-default "^6.0.1"
+ lilconfig "^2.1.0"
-csso@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
- integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+csso@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6"
+ integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==
dependencies:
- css-tree "^1.1.2"
+ css-tree "~2.2.0"
cssstyle@^3.0.0:
version "3.0.0"
@@ -3919,49 +3824,6 @@ damerau-levenshtein@^1.0.8:
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
-danger@^11.0.7:
- version "11.0.7"
- resolved "https://registry.yarnpkg.com/danger/-/danger-11.0.7.tgz#1d801f0b2e1ef89a74a9b1f2776cd8e5c1ce8e5e"
- integrity sha512-4jdZ5xqQO03EDmoYf29EMvHluNFMXOi5u8msxKE/pAe4UlfvQ6yOpQC5jHF73f724OLP2x9paqVd+vumoC3lug==
- dependencies:
- "@octokit/rest" "^18.12.0"
- async-retry "1.2.3"
- chalk "^2.3.0"
- commander "^2.18.0"
- core-js "^3.8.2"
- debug "^4.1.1"
- fast-json-patch "^3.0.0-1"
- get-stdin "^6.0.0"
- gitlab "^10.0.1"
- http-proxy-agent "^2.1.0"
- https-proxy-agent "^2.2.1"
- hyperlinker "^1.0.0"
- json5 "^2.1.0"
- jsonpointer "^5.0.0"
- jsonwebtoken "^8.4.0"
- lodash.find "^4.6.0"
- lodash.includes "^4.3.0"
- lodash.isobject "^3.0.2"
- lodash.keys "^4.0.8"
- lodash.mapvalues "^4.6.0"
- lodash.memoize "^4.1.2"
- memfs-or-file-map-to-github-branch "^1.2.1"
- micromatch "^4.0.4"
- node-cleanup "^2.1.2"
- node-fetch "^2.6.7"
- override-require "^1.1.1"
- p-limit "^2.1.0"
- parse-diff "^0.7.0"
- parse-git-config "^2.0.3"
- parse-github-url "^1.0.2"
- parse-link-header "^2.0.0"
- pinpoint "^1.1.0"
- prettyjson "^1.2.1"
- readline-sync "^1.4.9"
- regenerator-runtime "^0.13.9"
- require-from-string "^2.0.2"
- supports-hyperlinks "^1.0.1"
-
data-urls@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4"
@@ -3976,13 +3838,6 @@ date-fns@^2.0.1, date-fns@^2.24.0:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2"
integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
-debug@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
- dependencies:
- ms "2.0.0"
-
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -3990,7 +3845,7 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
dependencies:
ms "2.1.2"
-debug@^3.1.0, debug@^3.2.7:
+debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
@@ -4020,7 +3875,7 @@ decimal.js@^10.4.3:
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
-decode-uri-component@^0.2.0, decode-uri-component@^0.2.2:
+decode-uri-component@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
@@ -4087,11 +3942,6 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-deprecation@^2.0.0, deprecation@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
- integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
-
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
@@ -4160,10 +4010,10 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-dom-accessibility-api@^0.5.9:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b"
- integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw==
+dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
+ version "0.5.16"
+ resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453"
+ integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==
dom-helpers@^3.2.1, dom-helpers@^3.4.0:
version "3.4.0"
@@ -4181,11 +4031,25 @@ dom-serializer@^1.0.1:
domhandler "^4.2.0"
entities "^2.0.0"
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
+
domelementtype@^2.0.1, domelementtype@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
domexception@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
@@ -4207,6 +4071,13 @@ domhandler@^4.2.0, domhandler@^4.3.1:
dependencies:
domelementtype "^2.2.0"
+domhandler@^5.0.2, domhandler@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ dependencies:
+ domelementtype "^2.3.0"
+
domutils@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
@@ -4216,6 +4087,15 @@ domutils@^2.8.0:
domelementtype "^2.2.0"
domhandler "^4.2.0"
+domutils@^3.0.1:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e"
+ integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
+ dependencies:
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.3"
+
dot-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
@@ -4285,7 +4165,7 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.4:
dependencies:
once "^1.4.0"
-enhanced-resolve@^5.15.0:
+enhanced-resolve@^5.12.0, enhanced-resolve@^5.15.0:
version "5.15.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35"
integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==
@@ -4305,7 +4185,7 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-entities@^4.4.0:
+entities@^4.2.0, entities@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
@@ -4412,18 +4292,6 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
-es6-promise@^4.0.3:
- version "4.2.8"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
- integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-es6-promisify@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
- integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==
- dependencies:
- es6-promise "^4.0.3"
-
esbuild@^0.18.10:
version "0.18.20"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
@@ -4509,7 +4377,20 @@ eslint-import-resolver-node@^0.3.7:
is-core-module "^2.13.0"
resolve "^1.22.4"
-eslint-module-utils@^2.8.0:
+eslint-import-resolver-typescript@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd"
+ integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==
+ dependencies:
+ debug "^4.3.4"
+ enhanced-resolve "^5.12.0"
+ eslint-module-utils "^2.7.4"
+ fast-glob "^3.3.1"
+ get-tsconfig "^4.5.0"
+ is-core-module "^2.11.0"
+ is-glob "^4.0.3"
+
+eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49"
integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==
@@ -4748,11 +4629,6 @@ eth-rpc-errors@^4.0.2:
dependencies:
fast-safe-stringify "^2.0.6"
-event-target-shim@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
- integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
-
events@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
@@ -4773,29 +4649,10 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
-exenv@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
- integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=
-
-exif-js@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814"
- integrity sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ=
-
-expand-tilde@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
- integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==
- dependencies:
- homedir-polyfill "^1.0.1"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
- dependencies:
- is-extendable "^0.1.0"
+exifr@^7.1.3:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/exifr/-/exifr-7.1.3.tgz#f6218012c36dbb7d843222011b27f065fddbab6f"
+ integrity sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==
extension-port-stream@^2.0.1:
version "2.0.1"
@@ -4832,11 +4689,6 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-g
merge2 "^1.3.0"
micromatch "^4.0.4"
-fast-json-patch@^3.0.0-1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947"
- integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==
-
fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -4923,15 +4775,6 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
-form-data@^2.5.0:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
- integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.6"
- mime-types "^2.1.12"
-
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -4946,11 +4789,6 @@ fraction.js@^4.2.0:
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d"
integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==
-fs-exists-sync@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
- integrity sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==
-
fs-extra@^10.0.1:
version "10.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
@@ -5048,11 +4886,6 @@ get-own-enumerable-property-symbols@^3.0.0:
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
-get-stdin@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
- integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
-
get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
@@ -5073,27 +4906,12 @@ get-symbol-description@^1.0.0:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
-git-config-path@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-1.0.1.tgz#6d33f7ed63db0d0e118131503bab3aca47d54664"
- integrity sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==
+get-tsconfig@^4.5.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34"
+ integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==
dependencies:
- extend-shallow "^2.0.1"
- fs-exists-sync "^0.1.0"
- homedir-polyfill "^1.0.0"
-
-gitlab@^10.0.1:
- version "10.2.1"
- resolved "https://registry.yarnpkg.com/gitlab/-/gitlab-10.2.1.tgz#1f5fb2c2bad08f95b7c7d91dd41805ab5eea3960"
- integrity sha512-z+DxRF1C9uayVbocs9aJkJz+kGy14TSm1noB/rAIEBbXOkOYbjKxyuqJzt+0zeFpXFdgA0yq6DVVbvM7HIfGwg==
- dependencies:
- form-data "^2.5.0"
- humps "^2.0.1"
- ky "^0.12.0"
- ky-universal "^0.3.0"
- li "^1.3.0"
- query-string "^6.8.2"
- universal-url "^2.0.0"
+ resolve-pkg-maps "^1.0.0"
glob-parent@^5.1.2, glob-parent@^6.0.1, glob-parent@^6.0.2, glob-parent@~5.1.2:
version "6.0.2"
@@ -5240,11 +5058,6 @@ has-bigints@^1.0.1, has-bigints@^1.0.2:
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
- integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -5291,11 +5104,6 @@ hash-sum@^1.0.2:
resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==
-hasurl@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hasurl/-/hasurl-1.0.0.tgz#e4c619097ae1e8fc906bee904ce47e94f5e1ea37"
- integrity sha512-43ypUd3DbwyCT01UYpA99AEZxZ4aKtRxWGBHEIbjcOsUghd9YUON0C+JF6isNjaiwC/UF5neaUudy6JS9jZPZQ==
-
he@1.2.0, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -5327,13 +5135,6 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-
dependencies:
react-is "^16.7.0"
-homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
- integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
- dependencies:
- parse-passwd "^1.0.0"
-
hosted-git-info@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
@@ -5376,14 +5177,6 @@ http-link-header@^1.0.2:
resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.3.tgz#abbc2cdc5e06dd7e196a4983adac08a2d085ec90"
integrity sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==
-http-proxy-agent@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
- integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
- dependencies:
- agent-base "4"
- debug "3.1.0"
-
http-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
@@ -5401,14 +5194,6 @@ http2-wrapper@^1.0.0-beta.5.2:
quick-lru "^5.1.1"
resolve-alpn "^1.0.0"
-https-proxy-agent@^2.2.1:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
- integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
- dependencies:
- agent-base "^4.3.0"
- debug "^3.1.0"
-
https-proxy-agent@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
@@ -5422,21 +5207,11 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-humps@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa"
- integrity sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==
-
husky@^8.0.0:
version "8.0.3"
resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"
integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==
-hyperlinker@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e"
- integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==
-
iconv-lite@0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
@@ -5576,10 +5351,10 @@ intl-messageformat@9.9.1:
"@formatjs/icu-messageformat-parser" "2.0.11"
tslib "^2.1.0"
-intl-pluralrules@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz#304ec4038a597894f6616633cbf5e66fb3dbee04"
- integrity sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w==
+intl-pluralrules@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/intl-pluralrules/-/intl-pluralrules-2.0.1.tgz#de16c3df1e09437635829725e88ea70c9ad79569"
+ integrity sha512-astxTLzIdXPeN0K9Rumi6LfMpm3rvNO0iJE+h/k8Kr/is+wPbRe4ikyDjlLr6VTh/mEfNv8RjN+gu3KwDiuhqg==
invariant@^2.2.4:
version "2.2.4"
@@ -5656,7 +5431,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.9.0:
+is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.9.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
@@ -5675,11 +5450,6 @@ is-docker@^2.0.0, is-docker@^2.1.1:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
-is-extendable@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
-
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -6031,7 +5801,7 @@ json5@^1.0.2:
dependencies:
minimist "^1.2.0"
-json5@^2.1.0, json5@^2.1.2, json5@^2.2.0, json5@^2.2.3:
+json5@^2.1.2, json5@^2.2.0, json5@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
@@ -6076,7 +5846,7 @@ jsonpointer@^5.0.0:
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072"
integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==
-jsonwebtoken@^8.4.0, jsonwebtoken@^9.0.0:
+jsonwebtoken@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
@@ -6135,19 +5905,6 @@ known-css-properties@^0.28.0:
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.28.0.tgz#8a8be010f368b3036fe6ab0ef4bbbed972bd6274"
integrity sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==
-ky-universal@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.3.0.tgz#3fcbb0dd03da39b5f05100d9362a630d5e1d402e"
- integrity sha512-CM4Bgb2zZZpsprcjI6DNYTaH3oGHXL2u7BU4DK+lfCuC4snkt9/WRpMYeKbBbXscvKkeqBwzzjFX2WwmKY5K/A==
- dependencies:
- abort-controller "^3.0.0"
- node-fetch "^2.6.0"
-
-ky@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/ky/-/ky-0.12.0.tgz#c05be95e6745ba422a6d2cc8ae964164962279f9"
- integrity sha512-t9b7v3V2fGwAcQnnDDQwKQGF55eWrf4pwi1RN08Fy8b/9GEwV7Ea0xQiaSW6ZbeghBHIwl8kgnla4vVo9seepQ==
-
language-subtag-registry@~0.3.2:
version "0.3.21"
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
@@ -6183,11 +5940,6 @@ li@^1.3.0:
resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b"
integrity sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw==
-libphonenumber-js@^1.10.8:
- version "1.10.8"
- resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.8.tgz#21925db0f16d4f1553dff2bbc62afdaeb03f21f0"
- integrity sha512-MGgHrKRGE7sg7y0DikHybRDgTXcYv4HL+WwhDm5UAiChCNb5tcy5OEaU8XTTt5bDBwhZGCJNxoGMVBpZ4RfhIg==
-
lie@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
@@ -6195,7 +5947,7 @@ lie@3.1.1:
dependencies:
immediate "~3.0.5"
-lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0:
+lilconfig@^2.0.5, lilconfig@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
@@ -6296,16 +6048,6 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
-lodash.find@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
- integrity sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==
-
-lodash.includes@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
- integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
-
lodash.isboolean@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
@@ -6326,16 +6068,6 @@ lodash.isplainobject@^4.0.6:
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
-lodash.keys@^4.0.8:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
- integrity sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ==
-
-lodash.mapvalues@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
- integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==
-
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -6476,23 +6208,16 @@ mathml-tag-names@^2.1.3:
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
-mdn-data@2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
- integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+mdn-data@2.0.28:
+ version "2.0.28"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba"
+ integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==
mdn-data@2.0.30:
version "2.0.30"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
-memfs-or-file-map-to-github-branch@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/memfs-or-file-map-to-github-branch/-/memfs-or-file-map-to-github-branch-1.2.1.tgz#fdb9a85408262316a9bd5567409bf89be7d72f96"
- integrity sha512-I/hQzJ2a/pCGR8fkSQ9l5Yx+FQ4e7X6blNHyWBm2ojeFLT3GVzGkTj7xnyWpdclrr7Nq4dmx3xrvu70m3ypzAQ==
- dependencies:
- "@octokit/rest" "^16.43.0 || ^17.11.0 || ^18.12.0"
-
meow@^10.1.5:
version "10.1.5"
resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f"
@@ -6568,7 +6293,7 @@ mimic-response@^3.1.0:
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
-min-indent@^1.0.1:
+min-indent@^1.0.0, min-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
@@ -6643,11 +6368,6 @@ mousetrap@^1.5.2:
resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -6690,18 +6410,6 @@ no-case@^3.0.4:
lower-case "^2.0.2"
tslib "^2.0.3"
-node-cleanup@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"
- integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==
-
-node-fetch@^2.6.0, node-fetch@^2.6.7:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
- dependencies:
- whatwg-url "^5.0.0"
-
node-html-parser@^5.3.3:
version "5.4.2"
resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-5.4.2.tgz#93e004038c17af80226c942336990a0eaed8136a"
@@ -6881,23 +6589,11 @@ optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
-override-require@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/override-require/-/override-require-1.1.1.tgz#6ae22fadeb1f850ffb0cf4c20ff7b87e5eb650df"
- integrity sha512-eoJ9YWxFcXbrn2U8FKT6RV+/Kj7fiGAB1VvHzbYKt8xM5ZuKZgCGvnHzDxmreEjcBH28ejg5MiOH4iyY1mQnkg==
-
p-cancelable@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
-p-limit@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
p-limit@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
@@ -6926,11 +6622,6 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
pako@^0.2.5:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -6951,25 +6642,6 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-diff@^0.7.0:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/parse-diff/-/parse-diff-0.7.1.tgz#9b7a2451c3725baf2c87c831ba192d40ee2237d4"
- integrity sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg==
-
-parse-git-config@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-2.0.3.tgz#6fb840d4a956e28b971c97b33a5deb73a6d5b6bb"
- integrity sha512-Js7ueMZOVSZ3tP8C7E3KZiHv6QQl7lnJ+OkbxoaFazzSa2KyEHqApfGbU3XboUgUnq4ZuUmskUpYKTNx01fm5A==
- dependencies:
- expand-tilde "^2.0.2"
- git-config-path "^1.0.1"
- ini "^1.3.5"
-
-parse-github-url@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395"
- integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==
-
parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -6980,18 +6652,6 @@ parse-json@^5.0.0, parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
-parse-link-header@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-2.0.0.tgz#949353e284f8aa01f2ac857a98f692b57733f6b7"
- integrity sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==
- dependencies:
- xtend "~4.0.1"
-
-parse-passwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
- integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
-
parse5@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
@@ -7089,11 +6749,6 @@ pify@^2.3.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
-pinpoint@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pinpoint/-/pinpoint-1.1.0.tgz#0cf7757a6977f1bf7f6a32207b709e377388e874"
- integrity sha512-+04FTD9x7Cls2rihLlo57QDCcHoLBGn5Dk51SwtFBWkUWLxZaBXyNVpCw1S+atvE7GmnFjeaRZ0WLq3UYuqAdg==
-
pirates@^4.0.1:
version "4.0.5"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
@@ -7115,51 +6770,51 @@ please-upgrade-node@^3.2.0:
dependencies:
semver-compare "^1.0.0"
-postcss-calc@^8.2.3:
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
- integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
+postcss-calc@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6"
+ integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==
dependencies:
- postcss-selector-parser "^6.0.9"
+ postcss-selector-parser "^6.0.11"
postcss-value-parser "^4.2.0"
-postcss-colormin@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a"
- integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==
+postcss-colormin@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe"
+ integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
colord "^2.9.1"
postcss-value-parser "^4.2.0"
-postcss-convert-values@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz#31586df4e184c2e8890e8b34a0b9355313f503ab"
- integrity sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==
+postcss-convert-values@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996"
+ integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==
dependencies:
- browserslist "^4.20.3"
+ browserslist "^4.21.4"
postcss-value-parser "^4.2.0"
-postcss-discard-comments@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
- integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
+postcss-discard-comments@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe"
+ integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==
-postcss-discard-duplicates@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
- integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
+postcss-discard-duplicates@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355"
+ integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==
-postcss-discard-empty@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
- integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
+postcss-discard-empty@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee"
+ integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==
-postcss-discard-overridden@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
- integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
+postcss-discard-overridden@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234"
+ integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==
postcss-import@^15.1.0:
version "15.1.0"
@@ -7190,53 +6845,53 @@ postcss-media-query-parser@^0.2.3:
resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
-postcss-merge-longhand@^5.1.5:
- version "5.1.5"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz#b0e03bee3b964336f5f33c4fc8eacae608e91c05"
- integrity sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==
+postcss-merge-longhand@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69"
+ integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==
dependencies:
postcss-value-parser "^4.2.0"
- stylehacks "^5.1.0"
+ stylehacks "^6.0.0"
-postcss-merge-rules@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz#7049a14d4211045412116d79b751def4484473a5"
- integrity sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==
+postcss-merge-rules@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa"
+ integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
- cssnano-utils "^3.1.0"
+ cssnano-utils "^4.0.0"
postcss-selector-parser "^6.0.5"
-postcss-minify-font-values@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
- integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
+postcss-minify-font-values@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070"
+ integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-minify-gradients@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
- integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
+postcss-minify-gradients@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679"
+ integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==
dependencies:
colord "^2.9.1"
- cssnano-utils "^3.1.0"
+ cssnano-utils "^4.0.0"
postcss-value-parser "^4.2.0"
-postcss-minify-params@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz#ac41a6465be2db735099bbd1798d85079a6dc1f9"
- integrity sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==
+postcss-minify-params@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539"
+ integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==
dependencies:
- browserslist "^4.16.6"
- cssnano-utils "^3.1.0"
+ browserslist "^4.21.4"
+ cssnano-utils "^4.0.0"
postcss-value-parser "^4.2.0"
-postcss-minify-selectors@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
- integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
+postcss-minify-selectors@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2"
+ integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==
dependencies:
postcss-selector-parser "^6.0.5"
@@ -7247,89 +6902,88 @@ postcss-nested@^6.0.1:
dependencies:
postcss-selector-parser "^6.0.11"
-postcss-normalize-charset@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
- integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
+postcss-normalize-charset@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975"
+ integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==
-postcss-normalize-display-values@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
- integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
+postcss-normalize-display-values@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4"
+ integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-positions@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458"
- integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==
+postcss-normalize-positions@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301"
+ integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-repeat-style@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398"
- integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==
+postcss-normalize-repeat-style@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299"
+ integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-string@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
- integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
+postcss-normalize-string@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8"
+ integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-timing-functions@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
- integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
+postcss-normalize-timing-functions@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c"
+ integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-unicode@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75"
- integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==
+postcss-normalize-unicode@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730"
+ integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
postcss-value-parser "^4.2.0"
-postcss-normalize-url@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
- integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
- dependencies:
- normalize-url "^6.0.1"
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-whitespace@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
- integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
+postcss-normalize-url@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4"
+ integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-ordered-values@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb"
- integrity sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==
+postcss-normalize-whitespace@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d"
+ integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==
dependencies:
- cssnano-utils "^3.1.0"
postcss-value-parser "^4.2.0"
-postcss-reduce-initial@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6"
- integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==
+postcss-ordered-values@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218"
+ integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==
dependencies:
- browserslist "^4.16.6"
+ cssnano-utils "^4.0.0"
+ postcss-value-parser "^4.2.0"
+
+postcss-reduce-initial@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7"
+ integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==
+ dependencies:
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
-postcss-reduce-transforms@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
- integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
+postcss-reduce-transforms@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46"
+ integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==
dependencies:
postcss-value-parser "^4.2.0"
@@ -7356,7 +7010,7 @@ postcss-selector-parser@6.0.10:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
+postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5:
version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
@@ -7364,18 +7018,18 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-select
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-svgo@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
- integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
+postcss-svgo@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d"
+ integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==
dependencies:
postcss-value-parser "^4.2.0"
- svgo "^2.7.0"
+ svgo "^3.0.2"
-postcss-unique-selectors@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
- integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
+postcss-unique-selectors@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1"
+ integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==
dependencies:
postcss-selector-parser "^6.0.5"
@@ -7439,14 +7093,6 @@ pretty-format@^29.5.0:
ansi-styles "^5.0.0"
react-is "^18.0.0"
-prettyjson@^1.2.1:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835"
- integrity sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==
- dependencies:
- colors "1.4.0"
- minimist "^1.2.0"
-
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -7514,16 +7160,6 @@ qs@^6.10.1:
dependencies:
side-channel "^1.0.4"
-query-string@^6.8.2:
- version "6.14.1"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
- integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
- dependencies:
- decode-uri-component "^0.2.0"
- filter-obj "^1.1.0"
- split-on-first "^1.0.0"
- strict-uri-encode "^2.0.0"
-
query-string@^7.0.0:
version "7.1.3"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328"
@@ -7655,12 +7291,11 @@ react-immutable-pure-component@^2.2.2:
resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-2.2.2.tgz#3014d3e20cd5a7a4db73b81f1f1464f4d351684b"
integrity sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A==
-react-inlinesvg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/react-inlinesvg/-/react-inlinesvg-3.0.0.tgz#801c6bac1535334586708cd346f4b1125dcfa8f9"
- integrity sha512-zUt0DW3cKBk+vYZJJCzJqA9STRb+ZFmKLQFWurTvM4UR6vyHT8kHZSzyZZseX9BUNbTFJAfirtwpt97BWDJoSg==
+react-inlinesvg@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/react-inlinesvg/-/react-inlinesvg-4.0.3.tgz#69aa4d9c01b037abb800bfa103cb5591c6f3fe76"
+ integrity sha512-qPSqksbgDc6uVX6w256XY6JmdkLpzA4RiajvHi8u2qszXrhjDl6JwhW8x3VMkO4BxL9ll+/IeKR9ZxgM8wLcKQ==
dependencies:
- exenv "^1.2.2"
react-from-dom "^0.6.2"
react-intl-translations-manager@^5.0.3:
@@ -7723,11 +7358,6 @@ react-onclickoutside@^6.12.0:
resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz#92dddd28f55e483a1838c5c2930e051168c1e96b"
integrity sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==
-react-otp-input@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/react-otp-input/-/react-otp-input-2.4.0.tgz#0f0a3de1d8c8d564e2e4fbe5d6b7b56e29e3a6e6"
- integrity sha512-AIgl7u4sS9BTNCxX1xlaS5fPWay/Zml8Ho5LszXZKXrH1C/TiFsTQGmtl13UecQYO3mSF3HUzG2rrDf0sjEFmg==
-
react-overlays@^0.9.0:
version "0.9.3"
resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.9.3.tgz#5bac8c1e9e7e057a125181dee2d784864dd62902"
@@ -7954,11 +7584,6 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
-readline-sync@^1.4.9:
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b"
- integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==
-
realistic-structured-clone@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/realistic-structured-clone/-/realistic-structured-clone-3.0.0.tgz#7b518049ce2dad41ac32b421cd297075b00e3e35"
@@ -7968,6 +7593,14 @@ realistic-structured-clone@^3.0.0:
typeson "^6.1.0"
typeson-registry "^1.0.0-alpha.20"
+redent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+ integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+ dependencies:
+ indent-string "^4.0.0"
+ strip-indent "^3.0.0"
+
redent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9"
@@ -8022,11 +7655,6 @@ regenerator-runtime@^0.12.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
-regenerator-runtime@^0.13.9:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
-
regenerator-runtime@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
@@ -8117,6 +7745,11 @@ resolve-pathname@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==
+resolve-pkg-maps@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
+ integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
+
resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.4:
version "1.22.6"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362"
@@ -8150,11 +7783,6 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
-retry@0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
- integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -8313,11 +7941,6 @@ scroll-behavior@^0.9.1:
dom-helpers "^3.4.0"
invariant "^2.2.4"
-seedrandom@^3.0.5:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7"
- integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
-
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
@@ -8488,11 +8111,6 @@ split-on-first@^1.0.0:
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
-stable@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
stackback@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
@@ -8609,6 +8227,13 @@ strip-final-newline@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-indent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+ integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+ dependencies:
+ min-indent "^1.0.0"
+
strip-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853"
@@ -8633,12 +8258,12 @@ style-search@^0.1.0:
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=
-stylehacks@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520"
- integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==
+stylehacks@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738"
+ integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
postcss-selector-parser "^6.0.4"
stylelint-config-recommended-scss@^13.0.0:
@@ -8745,7 +8370,7 @@ sucrase@^3.32.0:
pirates "^4.0.1"
ts-interface-checker "^0.1.9"
-supports-color@^5.0.0, supports-color@^5.3.0:
+supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -8766,14 +8391,6 @@ supports-color@^8.0.0:
dependencies:
has-flag "^4.0.0"
-supports-hyperlinks@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7"
- integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==
- dependencies:
- has-flag "^2.0.0"
- supports-color "^5.0.0"
-
supports-hyperlinks@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b"
@@ -8792,18 +8409,17 @@ svg-tags@^1.0.0:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
-svgo@^2.7.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
- integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
+svgo@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.2.tgz#5e99eeea42c68ee0dc46aa16da093838c262fe0a"
+ integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==
dependencies:
"@trysound/sax" "0.2.0"
commander "^7.2.0"
- css-select "^4.1.3"
- css-tree "^1.1.3"
- csso "^4.2.0"
+ css-select "^5.1.0"
+ css-tree "^2.2.1"
+ csso "^5.0.5"
picocolors "^1.0.0"
- stable "^0.1.8"
symbol-tree@^3.2.4:
version "3.2.4"
@@ -9007,11 +8623,6 @@ tr46@^4.1.1:
dependencies:
punycode "^2.3.0"
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
- integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-
trim-newlines@^4.0.2:
version "4.1.1"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125"
@@ -9112,10 +8723,10 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
-type-fest@^3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.12.0.tgz#4ce26edc1ccc59fc171e495887ef391fe1f5280e"
- integrity sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==
+type-fest@^4.0.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.3.1.tgz#5cb58cdab5120f7ab0b40cfdc35073fb9adb651d"
+ integrity sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==
typed-array-buffer@^1.0.0:
version "1.0.0"
@@ -9233,19 +8844,6 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
-universal-url@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/universal-url/-/universal-url-2.0.0.tgz#35e7fc2c3374804905cee67ea289ed3a47669809"
- integrity sha512-3DLtXdm/G1LQMCnPj+Aw7uDoleQttNHp2g5FnNQKR6cP6taNWS1b/Ehjjx4PVyvejKi3TJyu8iBraKM4q3JQPg==
- dependencies:
- hasurl "^1.0.0"
- whatwg-url "^7.0.0"
-
-universal-user-agent@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
- integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
-
universalify@^0.1.0, universalify@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -9542,11 +9140,6 @@ webextension-polyfill@^0.7.0:
resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.7.0.tgz#0df1120ff0266056319ce1a622b09ad8d4a56505"
integrity sha512-su48BkMLxqzTTvPSE1eWxKToPS2Tv5DLGxKexLEVpwFd6Po6N8hhSLIvG6acPAg7qERoEaDL+Y5HQJeJeml5Aw==
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
- integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
-
webidl-conversions@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
@@ -9617,14 +9210,6 @@ whatwg-url@^12.0.0, whatwg-url@^12.0.1:
tr46 "^4.1.1"
webidl-conversions "^7.0.0"
-whatwg-url@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
- integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
whatwg-url@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
@@ -9929,11 +9514,6 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
y18n@^5.0.5:
version "5.0.8"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
@@ -9954,7 +9534,7 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yaml@^1.10.0, yaml@^1.10.2:
+yaml@^1.10.0:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==