diff --git a/app/application.ts b/app/application.ts index 38dc08993..111923abd 100644 --- a/app/application.ts +++ b/app/application.ts @@ -4,7 +4,7 @@ import loadPolyfills from './soapbox/load_polyfills'; require('./soapbox/iframe'); // @ts-ignore -require.context('./images/', true); +require.context('./assets/images/', true); // Load stylesheet require('react-datepicker/dist/react-datepicker.css'); diff --git a/app/fonts/OpenDyslexic/LICENSE b/app/assets/fonts/OpenDyslexic/LICENSE similarity index 100% rename from app/fonts/OpenDyslexic/LICENSE rename to app/assets/fonts/OpenDyslexic/LICENSE diff --git a/app/fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2 b/app/assets/fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2 similarity index 100% rename from app/fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2 rename to app/assets/fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2 diff --git a/app/fonts/OpenDyslexic/OpenDyslexic-Bold.woff2 b/app/assets/fonts/OpenDyslexic/OpenDyslexic-Bold.woff2 similarity index 100% rename from app/fonts/OpenDyslexic/OpenDyslexic-Bold.woff2 rename to app/assets/fonts/OpenDyslexic/OpenDyslexic-Bold.woff2 diff --git a/app/fonts/OpenDyslexic/OpenDyslexic-Italic.woff2 b/app/assets/fonts/OpenDyslexic/OpenDyslexic-Italic.woff2 similarity index 100% rename from app/fonts/OpenDyslexic/OpenDyslexic-Italic.woff2 rename to app/assets/fonts/OpenDyslexic/OpenDyslexic-Italic.woff2 diff --git a/app/fonts/OpenDyslexic/OpenDyslexic-Regular.woff2 b/app/assets/fonts/OpenDyslexic/OpenDyslexic-Regular.woff2 similarity index 100% rename from app/fonts/OpenDyslexic/OpenDyslexic-Regular.woff2 rename to app/assets/fonts/OpenDyslexic/OpenDyslexic-Regular.woff2 diff --git a/app/fonts/soapbox/soapbox.eot b/app/assets/fonts/soapbox/soapbox.eot similarity index 100% rename from app/fonts/soapbox/soapbox.eot rename to app/assets/fonts/soapbox/soapbox.eot diff --git a/app/fonts/soapbox/soapbox.svg b/app/assets/fonts/soapbox/soapbox.svg similarity index 100% rename from app/fonts/soapbox/soapbox.svg rename to app/assets/fonts/soapbox/soapbox.svg diff --git a/app/fonts/soapbox/soapbox.ttf b/app/assets/fonts/soapbox/soapbox.ttf similarity index 100% rename from app/fonts/soapbox/soapbox.ttf rename to app/assets/fonts/soapbox/soapbox.ttf diff --git a/app/fonts/soapbox/soapbox.woff b/app/assets/fonts/soapbox/soapbox.woff similarity index 100% rename from app/fonts/soapbox/soapbox.woff rename to app/assets/fonts/soapbox/soapbox.woff diff --git a/app/icons/COPYING.md b/app/assets/icons/COPYING.md similarity index 100% rename from app/icons/COPYING.md rename to app/assets/icons/COPYING.md diff --git a/app/icons/fediverse.svg b/app/assets/icons/fediverse.svg similarity index 100% rename from app/icons/fediverse.svg rename to app/assets/icons/fediverse.svg diff --git a/app/icons/verified.svg b/app/assets/icons/verified.svg similarity index 100% rename from app/icons/verified.svg rename to app/assets/icons/verified.svg diff --git a/app/images/audio-placeholder.png b/app/assets/images/audio-placeholder.png similarity index 100% rename from app/images/audio-placeholder.png rename to app/assets/images/audio-placeholder.png diff --git a/app/images/avatar-missing.png b/app/assets/images/avatar-missing.png similarity index 100% rename from app/images/avatar-missing.png rename to app/assets/images/avatar-missing.png diff --git a/app/images/avatar-missing.svg b/app/assets/images/avatar-missing.svg similarity index 100% rename from app/images/avatar-missing.svg rename to app/assets/images/avatar-missing.svg diff --git a/app/images/header-missing.png b/app/assets/images/header-missing.png similarity index 100% rename from app/images/header-missing.png rename to app/assets/images/header-missing.png diff --git a/app/images/soapbox-logo-white.svg b/app/assets/images/soapbox-logo-white.svg similarity index 100% rename from app/images/soapbox-logo-white.svg rename to app/assets/images/soapbox-logo-white.svg diff --git a/app/images/soapbox-logo.svg b/app/assets/images/soapbox-logo.svg similarity index 100% rename from app/images/soapbox-logo.svg rename to app/assets/images/soapbox-logo.svg diff --git a/app/images/video-placeholder.png b/app/assets/images/video-placeholder.png similarity index 100% rename from app/images/video-placeholder.png rename to app/assets/images/video-placeholder.png diff --git a/app/images/void.png b/app/assets/images/void.png similarity index 100% rename from app/images/void.png rename to app/assets/images/void.png diff --git a/app/images/web-push/web-push-icon_expand.png b/app/assets/images/web-push/web-push-icon_expand.png similarity index 100% rename from app/images/web-push/web-push-icon_expand.png rename to app/assets/images/web-push/web-push-icon_expand.png diff --git a/app/images/web-push/web-push-icon_favourite.png b/app/assets/images/web-push/web-push-icon_favourite.png similarity index 100% rename from app/images/web-push/web-push-icon_favourite.png rename to app/assets/images/web-push/web-push-icon_favourite.png diff --git a/app/images/web-push/web-push-icon_reblog.png b/app/assets/images/web-push/web-push-icon_reblog.png similarity index 100% rename from app/images/web-push/web-push-icon_reblog.png rename to app/assets/images/web-push/web-push-icon_reblog.png diff --git a/app/sounds/boop.mp3 b/app/assets/sounds/boop.mp3 similarity index 100% rename from app/sounds/boop.mp3 rename to app/assets/sounds/boop.mp3 diff --git a/app/sounds/boop.ogg b/app/assets/sounds/boop.ogg similarity index 100% rename from app/sounds/boop.ogg rename to app/assets/sounds/boop.ogg diff --git a/app/sounds/chat.mp3 b/app/assets/sounds/chat.mp3 similarity index 100% rename from app/sounds/chat.mp3 rename to app/assets/sounds/chat.mp3 diff --git a/app/sounds/chat.oga b/app/assets/sounds/chat.oga similarity index 100% rename from app/sounds/chat.oga rename to app/assets/sounds/chat.oga diff --git a/app/images/sprite-post-functions.png b/app/images/sprite-post-functions.png deleted file mode 100644 index aea7f57ba..000000000 Binary files a/app/images/sprite-post-functions.png and /dev/null differ diff --git a/app/soapbox/components/sidebar-navigation.tsx b/app/soapbox/components/sidebar-navigation.tsx index 22ad8dfc9..4dd47efff 100644 --- a/app/soapbox/components/sidebar-navigation.tsx +++ b/app/soapbox/components/sidebar-navigation.tsx @@ -97,7 +97,7 @@ const SidebarNavigation = () => { if (features.publicTimeline && features.federating) { menu.push({ to: '/timeline/fediverse', - icon: require('icons/fediverse.svg'), + icon: require('assets/icons/fediverse.svg'), text: intl.formatMessage(messages.fediverse), }); } diff --git a/app/soapbox/components/sidebar_menu.tsx b/app/soapbox/components/sidebar_menu.tsx index 817e1f0d2..2c695e5a1 100644 --- a/app/soapbox/components/sidebar_menu.tsx +++ b/app/soapbox/components/sidebar_menu.tsx @@ -228,7 +228,7 @@ const SidebarMenu: React.FC = (): JSX.Element | null => { {features.federating && ( } onClick={onClose} /> diff --git a/app/soapbox/components/site-logo.tsx b/app/soapbox/components/site-logo.tsx index 56add1c19..90552d0bd 100644 --- a/app/soapbox/components/site-logo.tsx +++ b/app/soapbox/components/site-logo.tsx @@ -18,8 +18,8 @@ const SiteLogo: React.FC = ({ className, theme, ...rest }) => { /** Soapbox logo. */ const soapboxLogo = darkMode - ? require('images/soapbox-logo-white.svg') - : require('images/soapbox-logo.svg'); + ? require('assets/images/soapbox-logo-white.svg') + : require('assets/images/soapbox-logo.svg'); // Use the right logo if provided, then use fallbacks. const getSrc = () => { diff --git a/app/soapbox/components/verification_badge.tsx b/app/soapbox/components/verification_badge.tsx index ce1d3792a..766decb88 100644 --- a/app/soapbox/components/verification_badge.tsx +++ b/app/soapbox/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('icons/verified.svg'); + const icon = soapboxConfig.verifiedIcon || require('assets/icons/verified.svg'); // Render component based on file extension const Element = icon.endsWith('.svg') ? Icon : 'img'; diff --git a/app/soapbox/middleware/sounds.ts b/app/soapbox/middleware/sounds.ts index 94ba15313..1d600306f 100644 --- a/app/soapbox/middleware/sounds.ts +++ b/app/soapbox/middleware/sounds.ts @@ -39,21 +39,21 @@ export default function soundsMiddleware(): ThunkMiddleware { const soundCache: Record = { boop: createAudio([ { - src: require('../../sounds/boop.ogg'), + src: require('../../assets/sounds/boop.ogg'), type: 'audio/ogg', }, { - src: require('../../sounds/boop.mp3'), + src: require('../../assets/sounds/boop.mp3'), type: 'audio/mpeg', }, ]), chat: createAudio([ { - src: require('../../sounds/chat.oga'), + src: require('../../assets/sounds/chat.oga'), type: 'audio/ogg', }, { - src: require('../../sounds/chat.mp3'), + src: require('../../assets/sounds/chat.mp3'), type: 'audio/mpeg', }, ]), diff --git a/app/soapbox/normalizers/__tests__/account.test.ts b/app/soapbox/normalizers/__tests__/account.test.ts index b5f4f5a75..a0589da2c 100644 --- a/app/soapbox/normalizers/__tests__/account.test.ts +++ b/app/soapbox/normalizers/__tests__/account.test.ts @@ -2,8 +2,8 @@ import { Record as ImmutableRecord, fromJS } from 'immutable'; import { normalizeAccount } from '../account'; -const AVATAR_MISSING = require('images/avatar-missing.png'); -const HEADER_MISSING = require('images/header-missing.png'); +const AVATAR_MISSING = require('assets/images/avatar-missing.png'); +const HEADER_MISSING = require('assets/images/header-missing.png'); describe('normalizeAccount()', () => { it('adds base fields', () => { diff --git a/app/soapbox/normalizers/account.ts b/app/soapbox/normalizers/account.ts index 97c640886..07d3ec1e6 100644 --- a/app/soapbox/normalizers/account.ts +++ b/app/soapbox/normalizers/account.ts @@ -98,7 +98,7 @@ const normalizePleromaLegacyFields = (account: ImmutableMap) => { const normalizeAvatar = (account: ImmutableMap) => { const avatar = account.get('avatar'); const avatarStatic = account.get('avatar_static'); - const missing = require('images/avatar-missing.png'); + const missing = require('assets/images/avatar-missing.png'); return account.withMutations(account => { account.set('avatar', avatar || avatarStatic || missing); @@ -110,7 +110,7 @@ const normalizeAvatar = (account: ImmutableMap) => { const normalizeHeader = (account: ImmutableMap) => { const header = account.get('header'); const headerStatic = account.get('header_static'); - const missing = require('images/header-missing.png'); + const missing = require('assets/images/header-missing.png'); return account.withMutations(account => { account.set('header', header || headerStatic || missing); diff --git a/app/soapbox/service_worker/web_push_notifications.ts b/app/soapbox/service_worker/web_push_notifications.ts index fe3d8e652..787e60941 100644 --- a/app/soapbox/service_worker/web_push_notifications.ts +++ b/app/soapbox/service_worker/web_push_notifications.ts @@ -180,21 +180,21 @@ const handlePush = (event: PushEvent) => { /** Native action to open a status on the device. */ const actionExpand = (preferred_locale: string) => ({ action: 'expand', - icon: `/${require('../../images/web-push/web-push-icon_expand.png')}`, + icon: `/${require('../../assets/images/web-push/web-push-icon_expand.png')}`, title: formatMessage('status.show_more', preferred_locale), }); /** Native action to repost status. */ const actionReblog = (preferred_locale: string) => ({ action: 'reblog', - icon: `/${require('../../images/web-push/web-push-icon_reblog.png')}`, + icon: `/${require('../../assets/images/web-push/web-push-icon_reblog.png')}`, title: formatMessage('status.reblog', preferred_locale), }); /** Native action to like status. */ const actionFavourite = (preferred_locale: string) => ({ action: 'favourite', - icon: `/${require('../../images/web-push/web-push-icon_favourite.png')}`, + icon: `/${require('../../assets/images/web-push/web-push-icon_favourite.png')}`, title: formatMessage('status.favourite', preferred_locale), }); diff --git a/app/styles/components/compose-form.scss b/app/styles/components/compose-form.scss index 0d76263d3..50ffbc2fe 100644 --- a/app/styles/components/compose-form.scss +++ b/app/styles/components/compose-form.scss @@ -135,12 +135,12 @@ position: relative; &.video { - background-image: url('../images/video-placeholder.png'); + background-image: url('../assets/images/video-placeholder.png'); background-size: cover; } &.audio { - background-image: url('../images/audio-placeholder.png'); + background-image: url('../assets/images/audio-placeholder.png'); background-size: cover; } } diff --git a/app/styles/fonts.scss b/app/styles/fonts.scss index bd8f1bec5..fbb21c381 100644 --- a/app/styles/fonts.scss +++ b/app/styles/fonts.scss @@ -3,26 +3,26 @@ // OpenDyslexic @font-face { font-family: 'OpenDyslexic'; - src: url('../fonts/OpenDyslexic/OpenDyslexic-Regular.woff2') format('woff2'); + src: url('../assets/fonts/OpenDyslexic/OpenDyslexic-Regular.woff2') format('woff2'); } @font-face { font-family: 'OpenDyslexic'; font-weight: bold; - src: url('../fonts/OpenDyslexic/OpenDyslexic-Bold.woff2') format('woff2'); + src: url('../assets/fonts/OpenDyslexic/OpenDyslexic-Bold.woff2') format('woff2'); } @font-face { font-family: 'OpenDyslexic'; font-weight: bold; font-style: italic; - src: url('../fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2') format('woff2'); + src: url('../assets/fonts/OpenDyslexic/OpenDyslexic-Bold-Italic.woff2') format('woff2'); } @font-face { font-family: 'OpenDyslexic'; font-style: italic; - src: url('../fonts/OpenDyslexic/OpenDyslexic-Italic.woff2') format('woff2'); + src: url('../assets/fonts/OpenDyslexic/OpenDyslexic-Italic.woff2') format('woff2'); } // TYPEOGRAPHY MIXINS @@ -62,11 +62,11 @@ // Soapbox icon font @font-face { font-family: 'soapbox'; - src: url('../fonts/soapbox/soapbox.eot?pryg6i'); - src: url('../fonts/soapbox/soapbox.eot?pryg6i#iefix') format('embedded-opentype'), - url('../fonts/soapbox/soapbox.ttf?pryg6i') format('truetype'), - url('../fonts/soapbox/soapbox.woff?pryg6i') format('woff'), - url('../fonts/soapbox/soapbox.svg?pryg6i#soapbox') format('svg'); + src: url('../assets/fonts/soapbox/soapbox.eot?pryg6i'); + src: url('../assets/fonts/soapbox/soapbox.eot?pryg6i#iefix') format('embedded-opentype'), + url('../assets/fonts/soapbox/soapbox.ttf?pryg6i') format('truetype'), + url('../assets/fonts/soapbox/soapbox.woff?pryg6i') format('woff'), + url('../assets/fonts/soapbox/soapbox.svg?pryg6i#soapbox') format('svg'); font-weight: normal; font-style: normal; } diff --git a/app/styles/ui.scss b/app/styles/ui.scss index e11041089..b822b77f1 100644 --- a/app/styles/ui.scss +++ b/app/styles/ui.scss @@ -232,7 +232,7 @@ article:last-child > .domain { .image-loader__preview-canvas { max-width: $media-modal-media-max-width; max-height: $media-modal-media-max-height; - background: url('../images/void.png') repeat; + background: url('../assets/images/void.png') repeat; object-fit: contain; } diff --git a/webpack/rules/assets.ts b/webpack/rules/assets.ts index d8c8e3e18..e9dd0202a 100644 --- a/webpack/rules/assets.ts +++ b/webpack/rules/assets.ts @@ -11,7 +11,7 @@ const rules: RuleSetRule[] = [{ test: /\.(png|svg)/, type: 'asset/resource', include: [ - resolve('app', 'images'), + resolve('app', 'assets', 'images'), resolve('node_modules', 'emoji-datasource'), ], generator: { @@ -21,7 +21,7 @@ const rules: RuleSetRule[] = [{ test: /\.(ttf|eot|svg|woff|woff2)/, type: 'asset/resource', include: [ - resolve('app', 'fonts'), + resolve('app', 'assets', 'fonts'), resolve('node_modules', 'fork-awesome'), resolve('node_modules', 'line-awesome'), resolve('node_modules', '@fontsource'), @@ -32,7 +32,7 @@ const rules: RuleSetRule[] = [{ }, { test: /\.(ogg|oga|mp3)/, type: 'asset/resource', - include: resolve('app', 'sounds'), + include: resolve('app', 'assets', 'sounds'), generator: { filename: 'packs/sounds/[name]-[contenthash:8][ext]', }, @@ -46,7 +46,7 @@ const rules: RuleSetRule[] = [{ }, { test: /\.svg$/, type: 'asset/resource', - include: resolve('app', 'icons'), + include: resolve('app', 'assets', 'icons'), generator: { filename: 'packs/icons/[name]-[contenthash:8][ext]', },