diff --git a/.eslintrc.js b/.eslintrc.js index b5ab511f8b..606a87e415 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -43,7 +43,7 @@ module.exports = { version: 'detect', }, 'import/extensions': [ - '.js', + '.js', '.jsx', ], 'import/ignore': [ 'node_modules', @@ -52,6 +52,7 @@ module.exports = { 'import/resolver': { node: { paths: ['app/javascript'], + extensions: ['.js', '.jsx'], }, }, }, @@ -111,6 +112,7 @@ module.exports = { semi: 'error', 'valid-typeof': 'error', + 'react/jsx-filename-extension': ['error', { 'allow': 'as-needed' }], 'react/jsx-boolean-value': 'error', 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], 'react/jsx-curly-spacing': 'error', @@ -185,6 +187,7 @@ module.exports = { 'always', { js: 'never', + jsx: 'never', }, ], 'import/newline-after-import': 'error', diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml index 3e0d9d1a92..44929f63db 100644 --- a/.github/workflows/lint-js.yml +++ b/.github/workflows/lint-js.yml @@ -10,6 +10,7 @@ on: - '.prettier*' - '.eslint*' - '**/*.js' + - '**/*.jsx' - '.github/workflows/lint-js.yml' pull_request: @@ -20,6 +21,7 @@ on: - '.prettier*' - '.eslint*' - '**/*.js' + - '**/*.jsx' - '.github/workflows/lint-js.yml' jobs: diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml index 60b8e318ef..6a1cacb3f0 100644 --- a/.github/workflows/test-js.yml +++ b/.github/workflows/test-js.yml @@ -8,6 +8,7 @@ on: - 'yarn.lock' - '.nvmrc' - '**/*.js' + - '**/*.jsx' - '**/*.snap' - '.github/workflows/test-js.yml' @@ -17,6 +18,7 @@ on: - 'yarn.lock' - '.nvmrc' - '**/*.js' + - '**/*.jsx' - '**/*.snap' - '.github/workflows/test-js.yml' diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap similarity index 100% rename from app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap rename to app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap diff --git a/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js b/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js rename to app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.js b/app/javascript/mastodon/components/__tests__/avatar-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/avatar-test.js rename to app/javascript/mastodon/components/__tests__/avatar-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/avatar_overlay-test.js b/app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/avatar_overlay-test.js rename to app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/button-test.js b/app/javascript/mastodon/components/__tests__/button-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/button-test.js rename to app/javascript/mastodon/components/__tests__/button-test.jsx diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.jsx similarity index 100% rename from app/javascript/mastodon/components/__tests__/display_name-test.js rename to app/javascript/mastodon/components/__tests__/display_name-test.jsx diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.jsx similarity index 100% rename from app/javascript/mastodon/components/account.js rename to app/javascript/mastodon/components/account.jsx diff --git a/app/javascript/mastodon/components/admin/Counter.js b/app/javascript/mastodon/components/admin/Counter.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Counter.js rename to app/javascript/mastodon/components/admin/Counter.jsx diff --git a/app/javascript/mastodon/components/admin/Dimension.js b/app/javascript/mastodon/components/admin/Dimension.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Dimension.js rename to app/javascript/mastodon/components/admin/Dimension.jsx diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.js b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/ReportReasonSelector.js rename to app/javascript/mastodon/components/admin/ReportReasonSelector.jsx diff --git a/app/javascript/mastodon/components/admin/Retention.js b/app/javascript/mastodon/components/admin/Retention.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Retention.js rename to app/javascript/mastodon/components/admin/Retention.jsx diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.jsx similarity index 100% rename from app/javascript/mastodon/components/admin/Trends.js rename to app/javascript/mastodon/components/admin/Trends.jsx diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.jsx similarity index 100% rename from app/javascript/mastodon/components/animated_number.js rename to app/javascript/mastodon/components/animated_number.jsx diff --git a/app/javascript/mastodon/components/attachment_list.js b/app/javascript/mastodon/components/attachment_list.jsx similarity index 100% rename from app/javascript/mastodon/components/attachment_list.js rename to app/javascript/mastodon/components/attachment_list.jsx diff --git a/app/javascript/mastodon/components/autosuggest_emoji.js b/app/javascript/mastodon/components/autosuggest_emoji.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_emoji.js rename to app/javascript/mastodon/components/autosuggest_emoji.jsx diff --git a/app/javascript/mastodon/components/autosuggest_hashtag.js b/app/javascript/mastodon/components/autosuggest_hashtag.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_hashtag.js rename to app/javascript/mastodon/components/autosuggest_hashtag.jsx diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_input.js rename to app/javascript/mastodon/components/autosuggest_input.jsx diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.jsx similarity index 100% rename from app/javascript/mastodon/components/autosuggest_textarea.js rename to app/javascript/mastodon/components/autosuggest_textarea.jsx diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar.js rename to app/javascript/mastodon/components/avatar.jsx diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar_composite.js rename to app/javascript/mastodon/components/avatar_composite.jsx diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.jsx similarity index 100% rename from app/javascript/mastodon/components/avatar_overlay.js rename to app/javascript/mastodon/components/avatar_overlay.jsx diff --git a/app/javascript/mastodon/components/blurhash.js b/app/javascript/mastodon/components/blurhash.jsx similarity index 100% rename from app/javascript/mastodon/components/blurhash.js rename to app/javascript/mastodon/components/blurhash.jsx diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.jsx similarity index 100% rename from app/javascript/mastodon/components/button.js rename to app/javascript/mastodon/components/button.jsx diff --git a/app/javascript/mastodon/components/check.js b/app/javascript/mastodon/components/check.jsx similarity index 100% rename from app/javascript/mastodon/components/check.js rename to app/javascript/mastodon/components/check.jsx diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.jsx similarity index 100% rename from app/javascript/mastodon/components/column.js rename to app/javascript/mastodon/components/column.jsx diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.jsx similarity index 100% rename from app/javascript/mastodon/components/column_back_button.js rename to app/javascript/mastodon/components/column_back_button.jsx diff --git a/app/javascript/mastodon/components/column_back_button_slim.js b/app/javascript/mastodon/components/column_back_button_slim.jsx similarity index 100% rename from app/javascript/mastodon/components/column_back_button_slim.js rename to app/javascript/mastodon/components/column_back_button_slim.jsx diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.jsx similarity index 100% rename from app/javascript/mastodon/components/column_header.js rename to app/javascript/mastodon/components/column_header.jsx diff --git a/app/javascript/mastodon/components/common_counter.js b/app/javascript/mastodon/components/common_counter.jsx similarity index 100% rename from app/javascript/mastodon/components/common_counter.js rename to app/javascript/mastodon/components/common_counter.jsx diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.jsx similarity index 100% rename from app/javascript/mastodon/components/dismissable_banner.js rename to app/javascript/mastodon/components/dismissable_banner.jsx diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.jsx similarity index 100% rename from app/javascript/mastodon/components/display_name.js rename to app/javascript/mastodon/components/display_name.jsx diff --git a/app/javascript/mastodon/components/domain.js b/app/javascript/mastodon/components/domain.jsx similarity index 100% rename from app/javascript/mastodon/components/domain.js rename to app/javascript/mastodon/components/domain.jsx diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.jsx similarity index 100% rename from app/javascript/mastodon/components/dropdown_menu.js rename to app/javascript/mastodon/components/dropdown_menu.jsx diff --git a/app/javascript/mastodon/components/edited_timestamp/index.js b/app/javascript/mastodon/components/edited_timestamp/index.jsx similarity index 100% rename from app/javascript/mastodon/components/edited_timestamp/index.js rename to app/javascript/mastodon/components/edited_timestamp/index.jsx diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.jsx similarity index 100% rename from app/javascript/mastodon/components/error_boundary.js rename to app/javascript/mastodon/components/error_boundary.jsx diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.jsx similarity index 100% rename from app/javascript/mastodon/components/gifv.js rename to app/javascript/mastodon/components/gifv.jsx diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.jsx similarity index 100% rename from app/javascript/mastodon/components/hashtag.js rename to app/javascript/mastodon/components/hashtag.jsx diff --git a/app/javascript/mastodon/components/icon.js b/app/javascript/mastodon/components/icon.jsx similarity index 100% rename from app/javascript/mastodon/components/icon.js rename to app/javascript/mastodon/components/icon.jsx diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.jsx similarity index 100% rename from app/javascript/mastodon/components/icon_button.js rename to app/javascript/mastodon/components/icon_button.jsx diff --git a/app/javascript/mastodon/components/icon_with_badge.js b/app/javascript/mastodon/components/icon_with_badge.jsx similarity index 100% rename from app/javascript/mastodon/components/icon_with_badge.js rename to app/javascript/mastodon/components/icon_with_badge.jsx diff --git a/app/javascript/mastodon/components/image.js b/app/javascript/mastodon/components/image.jsx similarity index 100% rename from app/javascript/mastodon/components/image.js rename to app/javascript/mastodon/components/image.jsx diff --git a/app/javascript/mastodon/components/inline_account.js b/app/javascript/mastodon/components/inline_account.jsx similarity index 100% rename from app/javascript/mastodon/components/inline_account.js rename to app/javascript/mastodon/components/inline_account.jsx diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.jsx similarity index 100% rename from app/javascript/mastodon/components/intersection_observer_article.js rename to app/javascript/mastodon/components/intersection_observer_article.jsx diff --git a/app/javascript/mastodon/components/load_gap.js b/app/javascript/mastodon/components/load_gap.jsx similarity index 100% rename from app/javascript/mastodon/components/load_gap.js rename to app/javascript/mastodon/components/load_gap.jsx diff --git a/app/javascript/mastodon/components/load_more.js b/app/javascript/mastodon/components/load_more.jsx similarity index 100% rename from app/javascript/mastodon/components/load_more.js rename to app/javascript/mastodon/components/load_more.jsx diff --git a/app/javascript/mastodon/components/load_pending.js b/app/javascript/mastodon/components/load_pending.jsx similarity index 100% rename from app/javascript/mastodon/components/load_pending.js rename to app/javascript/mastodon/components/load_pending.jsx diff --git a/app/javascript/mastodon/components/loading_indicator.js b/app/javascript/mastodon/components/loading_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/loading_indicator.js rename to app/javascript/mastodon/components/loading_indicator.jsx diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.jsx similarity index 100% rename from app/javascript/mastodon/components/logo.js rename to app/javascript/mastodon/components/logo.jsx diff --git a/app/javascript/mastodon/components/media_attachments.js b/app/javascript/mastodon/components/media_attachments.jsx similarity index 100% rename from app/javascript/mastodon/components/media_attachments.js rename to app/javascript/mastodon/components/media_attachments.jsx diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.jsx similarity index 100% rename from app/javascript/mastodon/components/media_gallery.js rename to app/javascript/mastodon/components/media_gallery.jsx diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/missing_indicator.js rename to app/javascript/mastodon/components/missing_indicator.jsx diff --git a/app/javascript/mastodon/components/modal_root.js b/app/javascript/mastodon/components/modal_root.jsx similarity index 100% rename from app/javascript/mastodon/components/modal_root.js rename to app/javascript/mastodon/components/modal_root.jsx diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.jsx similarity index 100% rename from app/javascript/mastodon/components/navigation_portal.js rename to app/javascript/mastodon/components/navigation_portal.jsx diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/not_signed_in_indicator.js rename to app/javascript/mastodon/components/not_signed_in_indicator.jsx diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.js b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx similarity index 100% rename from app/javascript/mastodon/components/picture_in_picture_placeholder.js rename to app/javascript/mastodon/components/picture_in_picture_placeholder.jsx diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.jsx similarity index 100% rename from app/javascript/mastodon/components/poll.js rename to app/javascript/mastodon/components/poll.jsx diff --git a/app/javascript/mastodon/components/radio_button.js b/app/javascript/mastodon/components/radio_button.jsx similarity index 100% rename from app/javascript/mastodon/components/radio_button.js rename to app/javascript/mastodon/components/radio_button.jsx diff --git a/app/javascript/mastodon/components/regeneration_indicator.js b/app/javascript/mastodon/components/regeneration_indicator.jsx similarity index 100% rename from app/javascript/mastodon/components/regeneration_indicator.js rename to app/javascript/mastodon/components/regeneration_indicator.jsx diff --git a/app/javascript/mastodon/components/relative_timestamp.js b/app/javascript/mastodon/components/relative_timestamp.jsx similarity index 100% rename from app/javascript/mastodon/components/relative_timestamp.js rename to app/javascript/mastodon/components/relative_timestamp.jsx diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.jsx similarity index 100% rename from app/javascript/mastodon/components/scrollable_list.js rename to app/javascript/mastodon/components/scrollable_list.jsx diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.jsx similarity index 100% rename from app/javascript/mastodon/components/server_banner.js rename to app/javascript/mastodon/components/server_banner.jsx diff --git a/app/javascript/mastodon/components/short_number.js b/app/javascript/mastodon/components/short_number.jsx similarity index 100% rename from app/javascript/mastodon/components/short_number.js rename to app/javascript/mastodon/components/short_number.jsx diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.jsx similarity index 100% rename from app/javascript/mastodon/components/skeleton.js rename to app/javascript/mastodon/components/skeleton.jsx diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.jsx similarity index 100% rename from app/javascript/mastodon/components/status.js rename to app/javascript/mastodon/components/status.jsx diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.jsx similarity index 100% rename from app/javascript/mastodon/components/status_action_bar.js rename to app/javascript/mastodon/components/status_action_bar.jsx diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.jsx similarity index 100% rename from app/javascript/mastodon/components/status_content.js rename to app/javascript/mastodon/components/status_content.jsx diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.jsx similarity index 100% rename from app/javascript/mastodon/components/status_list.js rename to app/javascript/mastodon/components/status_list.jsx diff --git a/app/javascript/mastodon/components/timeline_hint.js b/app/javascript/mastodon/components/timeline_hint.jsx similarity index 100% rename from app/javascript/mastodon/components/timeline_hint.js rename to app/javascript/mastodon/components/timeline_hint.jsx diff --git a/app/javascript/mastodon/containers/account_container.js b/app/javascript/mastodon/containers/account_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/account_container.js rename to app/javascript/mastodon/containers/account_container.jsx diff --git a/app/javascript/mastodon/containers/admin_component.js b/app/javascript/mastodon/containers/admin_component.jsx similarity index 100% rename from app/javascript/mastodon/containers/admin_component.js rename to app/javascript/mastodon/containers/admin_component.jsx diff --git a/app/javascript/mastodon/containers/compose_container.js b/app/javascript/mastodon/containers/compose_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/compose_container.js rename to app/javascript/mastodon/containers/compose_container.jsx diff --git a/app/javascript/mastodon/containers/domain_container.js b/app/javascript/mastodon/containers/domain_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/domain_container.js rename to app/javascript/mastodon/containers/domain_container.jsx diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.jsx similarity index 100% rename from app/javascript/mastodon/containers/mastodon.js rename to app/javascript/mastodon/containers/mastodon.jsx diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/media_container.js rename to app/javascript/mastodon/containers/media_container.jsx diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.jsx similarity index 100% rename from app/javascript/mastodon/containers/status_container.js rename to app/javascript/mastodon/containers/status_container.jsx diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.jsx similarity index 100% rename from app/javascript/mastodon/features/about/index.js rename to app/javascript/mastodon/features/about/index.jsx diff --git a/app/javascript/mastodon/features/account/components/account_note.js b/app/javascript/mastodon/features/account/components/account_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/account_note.js rename to app/javascript/mastodon/features/account/components/account_note.jsx diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/featured_tags.js rename to app/javascript/mastodon/features/account/components/featured_tags.jsx diff --git a/app/javascript/mastodon/features/account/components/follow_request_note.js b/app/javascript/mastodon/features/account/components/follow_request_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/follow_request_note.js rename to app/javascript/mastodon/features/account/components/follow_request_note.jsx diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/account/components/header.js rename to app/javascript/mastodon/features/account/components/header.jsx diff --git a/app/javascript/mastodon/features/account/navigation.js b/app/javascript/mastodon/features/account/navigation.jsx similarity index 100% rename from app/javascript/mastodon/features/account/navigation.js rename to app/javascript/mastodon/features/account/navigation.jsx diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx similarity index 100% rename from app/javascript/mastodon/features/account_gallery/components/media_item.js rename to app/javascript/mastodon/features/account_gallery/components/media_item.jsx diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.jsx similarity index 100% rename from app/javascript/mastodon/features/account_gallery/index.js rename to app/javascript/mastodon/features/account_gallery/index.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/header.js rename to app/javascript/mastodon/features/account_timeline/components/header.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js rename to app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.js b/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/moved_note.js rename to app/javascript/mastodon/features/account_timeline/components/moved_note.jsx diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/containers/header_container.js rename to app/javascript/mastodon/features/account_timeline/containers/header_container.jsx diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/index.js rename to app/javascript/mastodon/features/account_timeline/index.jsx diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.jsx similarity index 100% rename from app/javascript/mastodon/features/audio/index.js rename to app/javascript/mastodon/features/audio/index.jsx diff --git a/app/javascript/mastodon/features/blocks/index.js b/app/javascript/mastodon/features/blocks/index.jsx similarity index 100% rename from app/javascript/mastodon/features/blocks/index.js rename to app/javascript/mastodon/features/blocks/index.jsx diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/bookmarked_statuses/index.js rename to app/javascript/mastodon/features/bookmarked_statuses/index.jsx diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/closed_registrations_modal/index.js rename to app/javascript/mastodon/features/closed_registrations_modal/index.jsx diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.js b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/community_timeline/components/column_settings.js rename to app/javascript/mastodon/features/community_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/community_timeline/index.js rename to app/javascript/mastodon/features/community_timeline/index.jsx diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/action_bar.js rename to app/javascript/mastodon/features/compose/components/action_bar.jsx diff --git a/app/javascript/mastodon/features/compose/components/autosuggest_account.js b/app/javascript/mastodon/features/compose/components/autosuggest_account.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/autosuggest_account.js rename to app/javascript/mastodon/features/compose/components/autosuggest_account.jsx diff --git a/app/javascript/mastodon/features/compose/components/character_counter.js b/app/javascript/mastodon/features/compose/components/character_counter.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/character_counter.js rename to app/javascript/mastodon/features/compose/components/character_counter.jsx diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/compose_form.js rename to app/javascript/mastodon/features/compose/components/compose_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js rename to app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/language_dropdown.js rename to app/javascript/mastodon/features/compose/components/language_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/navigation_bar.js rename to app/javascript/mastodon/features/compose/components/navigation_bar.jsx diff --git a/app/javascript/mastodon/features/compose/components/poll_button.js b/app/javascript/mastodon/features/compose/components/poll_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/poll_button.js rename to app/javascript/mastodon/features/compose/components/poll_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/poll_form.js rename to app/javascript/mastodon/features/compose/components/poll_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/privacy_dropdown.js rename to app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.js b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/reply_indicator.js rename to app/javascript/mastodon/features/compose/components/reply_indicator.jsx diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/search.js rename to app/javascript/mastodon/features/compose/components/search.jsx diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/search_results.js rename to app/javascript/mastodon/features/compose/components/search_results.jsx diff --git a/app/javascript/mastodon/features/compose/components/text_icon_button.js b/app/javascript/mastodon/features/compose/components/text_icon_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/text_icon_button.js rename to app/javascript/mastodon/features/compose/components/text_icon_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload.js rename to app/javascript/mastodon/features/compose/components/upload.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_button.js rename to app/javascript/mastodon/features/compose/components/upload_button.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_form.js rename to app/javascript/mastodon/features/compose/components/upload_form.jsx diff --git a/app/javascript/mastodon/features/compose/components/upload_progress.js b/app/javascript/mastodon/features/compose/components/upload_progress.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/upload_progress.js rename to app/javascript/mastodon/features/compose/components/upload_progress.jsx diff --git a/app/javascript/mastodon/features/compose/components/warning.js b/app/javascript/mastodon/features/compose/components/warning.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/components/warning.js rename to app/javascript/mastodon/features/compose/components/warning.jsx diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.js b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/containers/sensitive_button_container.js rename to app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/containers/warning_container.js rename to app/javascript/mastodon/features/compose/containers/warning_container.jsx diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.jsx similarity index 100% rename from app/javascript/mastodon/features/compose/index.js rename to app/javascript/mastodon/features/compose/index.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.js b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/components/conversation.js rename to app/javascript/mastodon/features/direct_timeline/components/conversation.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/components/conversations_list.js rename to app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/direct_timeline/index.js rename to app/javascript/mastodon/features/direct_timeline/index.jsx diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.jsx similarity index 100% rename from app/javascript/mastodon/features/directory/components/account_card.js rename to app/javascript/mastodon/features/directory/components/account_card.jsx diff --git a/app/javascript/mastodon/features/directory/index.js b/app/javascript/mastodon/features/directory/index.jsx similarity index 100% rename from app/javascript/mastodon/features/directory/index.js rename to app/javascript/mastodon/features/directory/index.jsx diff --git a/app/javascript/mastodon/features/domain_blocks/index.js b/app/javascript/mastodon/features/domain_blocks/index.jsx similarity index 100% rename from app/javascript/mastodon/features/domain_blocks/index.js rename to app/javascript/mastodon/features/domain_blocks/index.jsx diff --git a/app/javascript/mastodon/features/explore/components/story.js b/app/javascript/mastodon/features/explore/components/story.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/components/story.js rename to app/javascript/mastodon/features/explore/components/story.jsx diff --git a/app/javascript/mastodon/features/explore/index.js b/app/javascript/mastodon/features/explore/index.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/index.js rename to app/javascript/mastodon/features/explore/index.jsx diff --git a/app/javascript/mastodon/features/explore/links.js b/app/javascript/mastodon/features/explore/links.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/links.js rename to app/javascript/mastodon/features/explore/links.jsx diff --git a/app/javascript/mastodon/features/explore/results.js b/app/javascript/mastodon/features/explore/results.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/results.js rename to app/javascript/mastodon/features/explore/results.jsx diff --git a/app/javascript/mastodon/features/explore/statuses.js b/app/javascript/mastodon/features/explore/statuses.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/statuses.js rename to app/javascript/mastodon/features/explore/statuses.jsx diff --git a/app/javascript/mastodon/features/explore/suggestions.js b/app/javascript/mastodon/features/explore/suggestions.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/suggestions.js rename to app/javascript/mastodon/features/explore/suggestions.jsx diff --git a/app/javascript/mastodon/features/explore/tags.js b/app/javascript/mastodon/features/explore/tags.jsx similarity index 100% rename from app/javascript/mastodon/features/explore/tags.js rename to app/javascript/mastodon/features/explore/tags.jsx diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/favourited_statuses/index.js rename to app/javascript/mastodon/features/favourited_statuses/index.jsx diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.jsx similarity index 100% rename from app/javascript/mastodon/features/favourites/index.js rename to app/javascript/mastodon/features/favourites/index.jsx diff --git a/app/javascript/mastodon/features/filters/added_to_filter.js b/app/javascript/mastodon/features/filters/added_to_filter.jsx similarity index 100% rename from app/javascript/mastodon/features/filters/added_to_filter.js rename to app/javascript/mastodon/features/filters/added_to_filter.jsx diff --git a/app/javascript/mastodon/features/filters/select_filter.js b/app/javascript/mastodon/features/filters/select_filter.jsx similarity index 100% rename from app/javascript/mastodon/features/filters/select_filter.js rename to app/javascript/mastodon/features/filters/select_filter.jsx diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_recommendations/components/account.js rename to app/javascript/mastodon/features/follow_recommendations/components/account.jsx diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_recommendations/index.js rename to app/javascript/mastodon/features/follow_recommendations/index.jsx diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_requests/components/account_authorize.js rename to app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.jsx similarity index 100% rename from app/javascript/mastodon/features/follow_requests/index.js rename to app/javascript/mastodon/features/follow_requests/index.jsx diff --git a/app/javascript/mastodon/features/followed_tags/index.js b/app/javascript/mastodon/features/followed_tags/index.jsx similarity index 100% rename from app/javascript/mastodon/features/followed_tags/index.js rename to app/javascript/mastodon/features/followed_tags/index.jsx diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.jsx similarity index 100% rename from app/javascript/mastodon/features/followers/index.js rename to app/javascript/mastodon/features/followers/index.jsx diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.jsx similarity index 100% rename from app/javascript/mastodon/features/following/index.js rename to app/javascript/mastodon/features/following/index.jsx diff --git a/app/javascript/mastodon/features/generic_not_found/index.js b/app/javascript/mastodon/features/generic_not_found/index.jsx similarity index 100% rename from app/javascript/mastodon/features/generic_not_found/index.js rename to app/javascript/mastodon/features/generic_not_found/index.jsx diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/components/announcements.js rename to app/javascript/mastodon/features/getting_started/components/announcements.jsx diff --git a/app/javascript/mastodon/features/getting_started/components/trends.js b/app/javascript/mastodon/features/getting_started/components/trends.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/components/trends.js rename to app/javascript/mastodon/features/getting_started/components/trends.jsx diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.jsx similarity index 100% rename from app/javascript/mastodon/features/getting_started/index.js rename to app/javascript/mastodon/features/getting_started/index.jsx diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js rename to app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/hashtag_timeline/index.js rename to app/javascript/mastodon/features/hashtag_timeline/index.jsx diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.js b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/home_timeline/components/column_settings.js rename to app/javascript/mastodon/features/home_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/home_timeline/index.js rename to app/javascript/mastodon/features/home_timeline/index.jsx diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/interaction_modal/index.js rename to app/javascript/mastodon/features/interaction_modal/index.jsx diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx similarity index 100% rename from app/javascript/mastodon/features/keyboard_shortcuts/index.js rename to app/javascript/mastodon/features/keyboard_shortcuts/index.jsx diff --git a/app/javascript/mastodon/features/list_adder/components/account.js b/app/javascript/mastodon/features/list_adder/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/components/account.js rename to app/javascript/mastodon/features/list_adder/components/account.jsx diff --git a/app/javascript/mastodon/features/list_adder/components/list.js b/app/javascript/mastodon/features/list_adder/components/list.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/components/list.js rename to app/javascript/mastodon/features/list_adder/components/list.jsx diff --git a/app/javascript/mastodon/features/list_adder/index.js b/app/javascript/mastodon/features/list_adder/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_adder/index.js rename to app/javascript/mastodon/features/list_adder/index.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/account.js b/app/javascript/mastodon/features/list_editor/components/account.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/account.js rename to app/javascript/mastodon/features/list_editor/components/account.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/edit_list_form.js rename to app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx diff --git a/app/javascript/mastodon/features/list_editor/components/search.js b/app/javascript/mastodon/features/list_editor/components/search.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/components/search.js rename to app/javascript/mastodon/features/list_editor/components/search.jsx diff --git a/app/javascript/mastodon/features/list_editor/index.js b/app/javascript/mastodon/features/list_editor/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_editor/index.js rename to app/javascript/mastodon/features/list_editor/index.jsx diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/list_timeline/index.js rename to app/javascript/mastodon/features/list_timeline/index.jsx diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.jsx similarity index 100% rename from app/javascript/mastodon/features/lists/components/new_list_form.js rename to app/javascript/mastodon/features/lists/components/new_list_form.jsx diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.jsx similarity index 100% rename from app/javascript/mastodon/features/lists/index.js rename to app/javascript/mastodon/features/lists/index.jsx diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.jsx similarity index 100% rename from app/javascript/mastodon/features/mutes/index.js rename to app/javascript/mastodon/features/mutes/index.jsx diff --git a/app/javascript/mastodon/features/notifications/components/clear_column_button.js b/app/javascript/mastodon/features/notifications/components/clear_column_button.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/clear_column_button.js rename to app/javascript/mastodon/features/notifications/components/clear_column_button.jsx diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/column_settings.js rename to app/javascript/mastodon/features/notifications/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.js b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/filter_bar.js rename to app/javascript/mastodon/features/notifications/components/filter_bar.jsx diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.js b/app/javascript/mastodon/features/notifications/components/follow_request.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/follow_request.js rename to app/javascript/mastodon/features/notifications/components/follow_request.jsx diff --git a/app/javascript/mastodon/features/notifications/components/grant_permission_button.js b/app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/grant_permission_button.js rename to app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/notification.js rename to app/javascript/mastodon/features/notifications/components/notification.jsx diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js rename to app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx diff --git a/app/javascript/mastodon/features/notifications/components/report.js b/app/javascript/mastodon/features/notifications/components/report.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/report.js rename to app/javascript/mastodon/features/notifications/components/report.jsx diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/components/setting_toggle.js rename to app/javascript/mastodon/features/notifications/components/setting_toggle.jsx diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.jsx similarity index 100% rename from app/javascript/mastodon/features/notifications/index.js rename to app/javascript/mastodon/features/notifications/index.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/components/footer.js rename to app/javascript/mastodon/features/picture_in_picture/components/footer.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/components/header.js b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/components/header.js rename to app/javascript/mastodon/features/picture_in_picture/components/header.jsx diff --git a/app/javascript/mastodon/features/picture_in_picture/index.js b/app/javascript/mastodon/features/picture_in_picture/index.jsx similarity index 100% rename from app/javascript/mastodon/features/picture_in_picture/index.js rename to app/javascript/mastodon/features/picture_in_picture/index.jsx diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.jsx similarity index 100% rename from app/javascript/mastodon/features/pinned_statuses/index.js rename to app/javascript/mastodon/features/pinned_statuses/index.jsx diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.jsx similarity index 100% rename from app/javascript/mastodon/features/privacy_policy/index.js rename to app/javascript/mastodon/features/privacy_policy/index.jsx diff --git a/app/javascript/mastodon/features/public_timeline/components/column_settings.js b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx similarity index 100% rename from app/javascript/mastodon/features/public_timeline/components/column_settings.js rename to app/javascript/mastodon/features/public_timeline/components/column_settings.jsx diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.jsx similarity index 100% rename from app/javascript/mastodon/features/public_timeline/index.js rename to app/javascript/mastodon/features/public_timeline/index.jsx diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.jsx similarity index 100% rename from app/javascript/mastodon/features/reblogs/index.js rename to app/javascript/mastodon/features/reblogs/index.jsx diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.jsx similarity index 100% rename from app/javascript/mastodon/features/report/category.js rename to app/javascript/mastodon/features/report/category.jsx diff --git a/app/javascript/mastodon/features/report/comment.js b/app/javascript/mastodon/features/report/comment.jsx similarity index 100% rename from app/javascript/mastodon/features/report/comment.js rename to app/javascript/mastodon/features/report/comment.jsx diff --git a/app/javascript/mastodon/features/report/components/option.js b/app/javascript/mastodon/features/report/components/option.jsx similarity index 100% rename from app/javascript/mastodon/features/report/components/option.js rename to app/javascript/mastodon/features/report/components/option.jsx diff --git a/app/javascript/mastodon/features/report/components/status_check_box.js b/app/javascript/mastodon/features/report/components/status_check_box.jsx similarity index 100% rename from app/javascript/mastodon/features/report/components/status_check_box.js rename to app/javascript/mastodon/features/report/components/status_check_box.jsx diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.jsx similarity index 100% rename from app/javascript/mastodon/features/report/rules.js rename to app/javascript/mastodon/features/report/rules.jsx diff --git a/app/javascript/mastodon/features/report/statuses.js b/app/javascript/mastodon/features/report/statuses.jsx similarity index 100% rename from app/javascript/mastodon/features/report/statuses.js rename to app/javascript/mastodon/features/report/statuses.jsx diff --git a/app/javascript/mastodon/features/report/thanks.js b/app/javascript/mastodon/features/report/thanks.jsx similarity index 100% rename from app/javascript/mastodon/features/report/thanks.js rename to app/javascript/mastodon/features/report/thanks.jsx diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.jsx similarity index 100% rename from app/javascript/mastodon/features/standalone/compose/index.js rename to app/javascript/mastodon/features/standalone/compose/index.jsx diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/action_bar.js rename to app/javascript/mastodon/features/status/components/action_bar.jsx diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/card.js rename to app/javascript/mastodon/features/status/components/card.jsx diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.jsx similarity index 100% rename from app/javascript/mastodon/features/status/components/detailed_status.js rename to app/javascript/mastodon/features/status/components/detailed_status.jsx diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.jsx similarity index 100% rename from app/javascript/mastodon/features/status/index.js rename to app/javascript/mastodon/features/status/index.jsx diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx similarity index 100% rename from app/javascript/mastodon/features/subscribed_languages_modal/index.js rename to app/javascript/mastodon/features/subscribed_languages_modal/index.jsx diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/__tests__/column-test.js rename to app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/actions_modal.js rename to app/javascript/mastodon/features/ui/components/actions_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/audio_modal.js b/app/javascript/mastodon/features/ui/components/audio_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/audio_modal.js rename to app/javascript/mastodon/features/ui/components/audio_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/block_modal.js b/app/javascript/mastodon/features/ui/components/block_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/block_modal.js rename to app/javascript/mastodon/features/ui/components/block_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/boost_modal.js rename to app/javascript/mastodon/features/ui/components/boost_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle.js b/app/javascript/mastodon/features/ui/components/bundle.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle.js rename to app/javascript/mastodon/features/ui/components/bundle.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle_column_error.js rename to app/javascript/mastodon/features/ui/components/bundle_column_error.jsx diff --git a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js b/app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/bundle_modal_error.js rename to app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx diff --git a/app/javascript/mastodon/features/ui/components/column.js b/app/javascript/mastodon/features/ui/components/column.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column.js rename to app/javascript/mastodon/features/ui/components/column.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_header.js rename to app/javascript/mastodon/features/ui/components/column_header.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_link.js rename to app/javascript/mastodon/features/ui/components/column_link.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_loading.js rename to app/javascript/mastodon/features/ui/components/column_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/column_subheading.js b/app/javascript/mastodon/features/ui/components/column_subheading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/column_subheading.js rename to app/javascript/mastodon/features/ui/components/column_subheading.jsx diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/columns_area.js rename to app/javascript/mastodon/features/ui/components/columns_area.jsx diff --git a/app/javascript/mastodon/features/ui/components/compare_history_modal.js b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/compare_history_modal.js rename to app/javascript/mastodon/features/ui/components/compare_history_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/compose_panel.js rename to app/javascript/mastodon/features/ui/components/compose_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/confirmation_modal.js rename to app/javascript/mastodon/features/ui/components/confirmation_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/disabled_account_banner.js rename to app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx diff --git a/app/javascript/mastodon/features/ui/components/drawer_loading.js b/app/javascript/mastodon/features/ui/components/drawer_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/drawer_loading.js rename to app/javascript/mastodon/features/ui/components/drawer_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/embed_modal.js rename to app/javascript/mastodon/features/ui/components/embed_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.js b/app/javascript/mastodon/features/ui/components/filter_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/filter_modal.js rename to app/javascript/mastodon/features/ui/components/filter_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/focal_point_modal.js rename to app/javascript/mastodon/features/ui/components/focal_point_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/follow_requests_column_link.js rename to app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/header.js rename to app/javascript/mastodon/features/ui/components/header.jsx diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/image_loader.js rename to app/javascript/mastodon/features/ui/components/image_loader.jsx diff --git a/app/javascript/mastodon/features/ui/components/image_modal.js b/app/javascript/mastodon/features/ui/components/image_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/image_modal.js rename to app/javascript/mastodon/features/ui/components/image_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/link_footer.js rename to app/javascript/mastodon/features/ui/components/link_footer.jsx diff --git a/app/javascript/mastodon/features/ui/components/list_panel.js b/app/javascript/mastodon/features/ui/components/list_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/list_panel.js rename to app/javascript/mastodon/features/ui/components/list_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/media_modal.js rename to app/javascript/mastodon/features/ui/components/media_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/modal_loading.js b/app/javascript/mastodon/features/ui/components/modal_loading.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/modal_loading.js rename to app/javascript/mastodon/features/ui/components/modal_loading.jsx diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/modal_root.js rename to app/javascript/mastodon/features/ui/components/modal_root.jsx diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.js b/app/javascript/mastodon/features/ui/components/mute_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/mute_modal.js rename to app/javascript/mastodon/features/ui/components/mute_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/navigation_panel.js rename to app/javascript/mastodon/features/ui/components/navigation_panel.jsx diff --git a/app/javascript/mastodon/features/ui/components/report_modal.js b/app/javascript/mastodon/features/ui/components/report_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/report_modal.js rename to app/javascript/mastodon/features/ui/components/report_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.js b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/sign_in_banner.js rename to app/javascript/mastodon/features/ui/components/sign_in_banner.jsx diff --git a/app/javascript/mastodon/features/ui/components/upload_area.js b/app/javascript/mastodon/features/ui/components/upload_area.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/upload_area.js rename to app/javascript/mastodon/features/ui/components/upload_area.jsx diff --git a/app/javascript/mastodon/features/ui/components/video_modal.js b/app/javascript/mastodon/features/ui/components/video_modal.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/video_modal.js rename to app/javascript/mastodon/features/ui/components/video_modal.jsx diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.js b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/components/zoomable_image.js rename to app/javascript/mastodon/features/ui/components/zoomable_image.jsx diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/index.js rename to app/javascript/mastodon/features/ui/index.jsx diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/util/react_router_helpers.js rename to app/javascript/mastodon/features/ui/util/react_router_helpers.jsx diff --git a/app/javascript/mastodon/features/ui/util/reduced_motion.js b/app/javascript/mastodon/features/ui/util/reduced_motion.jsx similarity index 100% rename from app/javascript/mastodon/features/ui/util/reduced_motion.js rename to app/javascript/mastodon/features/ui/util/reduced_motion.jsx diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.jsx similarity index 100% rename from app/javascript/mastodon/features/video/index.js rename to app/javascript/mastodon/features/video/index.jsx diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.jsx similarity index 100% rename from app/javascript/mastodon/main.js rename to app/javascript/mastodon/main.jsx diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.jsx similarity index 100% rename from app/javascript/mastodon/utils/icons.js rename to app/javascript/mastodon/utils/icons.jsx diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.jsx similarity index 100% rename from app/javascript/packs/admin.js rename to app/javascript/packs/admin.jsx diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.jsx similarity index 100% rename from app/javascript/packs/public.js rename to app/javascript/packs/public.jsx diff --git a/app/javascript/packs/share.js b/app/javascript/packs/share.jsx similarity index 100% rename from app/javascript/packs/share.js rename to app/javascript/packs/share.jsx diff --git a/config/webpacker.yml b/config/webpacker.yml index 4ad78a190e..0baff662b0 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -35,6 +35,7 @@ default: &default extensions: - .mjs - .js + - .jsx - .sass - .scss - .css diff --git a/package.json b/package.json index 57ee85b716..06af9045e9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "start": "node ./streaming/index.js", "test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest", "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass", - "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives", + "test:lint:js": "eslint --ext=.js,.jsx . --cache --report-unused-disable-directives", "test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"", "test:jest": "cross-env NODE_ENV=test jest", "format": "prettier --write .",