From 2acb3aeb14e464d2173dca28ce009eadf35ecd12 Mon Sep 17 00:00:00 2001
From: Paul <paulmakles@gmail.com>
Date: Sun, 20 Jun 2021 11:05:12 +0100
Subject: [PATCH] Re-organise assets to be closer to their respective uses.

---
 index.html                                    |   3 ++-
 package.json                                  |   2 +-
 public/assets/app_icon.png                    | Bin 11730 -> 0 bytes
 public/assets/favicon.ico                     | Bin 16446 -> 0 bytes
 public/assets/logo.svg                        |   1 -
 public/assets/{ => sounds}/inbound.mp3        | Bin
 public/assets/{ => sounds}/inbound.ogg        | Bin
 public/assets/{ => sounds}/outbound.mp3       | Bin
 public/assets/{ => sounds}/outbound.ogg       | Bin
 {public => src}/assets/emojis.ts              |   0
 src/assets/logo.svg                           |   3 +++
 src/assets/logo_round.png                     | Bin 0 -> 7558 bytes
 {public => src}/assets/wide.svg               |   0
 src/components/common/ChannelIcon.tsx         |   3 ++-
 src/components/common/UserIcon.tsx            |   3 ++-
 .../components/common}/assets/group.png       | Bin
 .../components/common}/assets/user.png        | Bin
 .../navigation/items}/placeholder.svg         |   0
 .../navigation/left/ServerListSidebar.tsx     |  18 +++++++++-------
 .../intermediate/modals/Onboarding.tsx        |   4 +++-
 src/pages/home/Home.tsx                       |   4 +++-
 .../pages/settings/assets}/dark.svg           |   0
 .../pages/settings/assets}/light.svg          |   0
 .../pages/settings/assets}/mutant_emoji.svg   |   0
 .../pages/settings/assets}/noto_emoji.svg     |   0
 .../pages/settings/assets}/openmoji_emoji.svg |   0
 .../pages/settings/assets}/twemoji_emoji.svg  |   0
 src/pages/settings/panes/Appearance.tsx       |  20 ++++++++++++------
 28 files changed, 40 insertions(+), 21 deletions(-)
 delete mode 100644 public/assets/app_icon.png
 delete mode 100644 public/assets/favicon.ico
 delete mode 100644 public/assets/logo.svg
 rename public/assets/{ => sounds}/inbound.mp3 (100%)
 rename public/assets/{ => sounds}/inbound.ogg (100%)
 rename public/assets/{ => sounds}/outbound.mp3 (100%)
 rename public/assets/{ => sounds}/outbound.ogg (100%)
 rename {public => src}/assets/emojis.ts (100%)
 create mode 100644 src/assets/logo.svg
 create mode 100644 src/assets/logo_round.png
 rename {public => src}/assets/wide.svg (100%)
 rename {public => src/components/common}/assets/group.png (100%)
 rename {public => src/components/common}/assets/user.png (100%)
 rename {public/assets/images => src/components/navigation/items}/placeholder.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/dark.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/light.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/mutant_emoji.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/noto_emoji.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/openmoji_emoji.svg (100%)
 rename {public/assets/images => src/pages/settings/assets}/twemoji_emoji.svg (100%)

diff --git a/index.html b/index.html
index 1885d9e..2082666 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,8 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />
+    <link rel="icon" type="image/png" href="/src/assets/logo_round.png" />
+    <!--<link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />-->
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>REVOLT</title>
   </head>
diff --git a/package.json b/package.json
index c639394..6cc3650 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "version": "0.0.0",
   "scripts": {
     "dev": "vite",
-    "build": "rimraf build && tsc && vite build",
+    "build": "rimraf build && tsc --noEmit && vite build",
     "preview": "vite preview",
     "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
     "fmt": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'",
diff --git a/public/assets/app_icon.png b/public/assets/app_icon.png
deleted file mode 100644
index 8cc3feb755a157092d4d11bbe6cd5d329756fe99..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11730
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
TG=BJ?Fak(gN$Qt`QQ&_7Os#=Q

diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico
deleted file mode 100644
index 8985022729dfbbaf565625e311d1231b3a081b3c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16446
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

diff --git a/public/assets/logo.svg b/public/assets/logo.svg
deleted file mode 100644
index 3b99f7f..0000000
--- a/public/assets/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="193.733" height="37.438" viewBox="0 0 193.733 37.438"><path d="M23.393,1.382c0,2.787-1.52,4.46-4.764,4.46H13.258V-2.977H18.63C21.873-2.977,23.393-1.254,23.393,1.382Zm-24-11.555,5.2,7.213V25.4h8.666V11.973h2.078l7.4,13.43h9.781l-8.21-14.089A10.355,10.355,0,0,0,32.212,1.027c0-6.183-4.358-11.2-13.075-11.2Zm60.035,0H37.634V25.4H59.426V18.46H46.3v-7.8H57.906V3.966H46.3V-2.969H59.426Zm20.981,26.86-8.818-26.86H62.365L74.984,25.4H85.83L98.449-10.173H89.276Zm56.659-9.173c0-10.693-8.058-18.194-18.194-18.194-10.085,0-18.3,7.5-18.3,18.194a17.9,17.9,0,0,0,18.3,18.244A17.815,17.815,0,0,0,137.066,7.514Zm-27.62,0c0-6.335,3.649-10.338,9.426-10.338,5.676,0,9.376,4,9.376,10.338,0,6.233-3.7,10.338-9.376,10.338C113.095,17.852,109.446,13.747,109.446,7.514ZM141.88-10.173V25.4H161.9v-6.95H150.545V-10.173Zm22.248,7.2h9.426V25.4h8.666V-2.975h9.426v-7.2H164.128Z" transform="translate(1.586 11.18)" fill="#fff" stroke="#fff" stroke-width="1"/></svg>
\ No newline at end of file
diff --git a/public/assets/inbound.mp3 b/public/assets/sounds/inbound.mp3
similarity index 100%
rename from public/assets/inbound.mp3
rename to public/assets/sounds/inbound.mp3
diff --git a/public/assets/inbound.ogg b/public/assets/sounds/inbound.ogg
similarity index 100%
rename from public/assets/inbound.ogg
rename to public/assets/sounds/inbound.ogg
diff --git a/public/assets/outbound.mp3 b/public/assets/sounds/outbound.mp3
similarity index 100%
rename from public/assets/outbound.mp3
rename to public/assets/sounds/outbound.mp3
diff --git a/public/assets/outbound.ogg b/public/assets/sounds/outbound.ogg
similarity index 100%
rename from public/assets/outbound.ogg
rename to public/assets/sounds/outbound.ogg
diff --git a/public/assets/emojis.ts b/src/assets/emojis.ts
similarity index 100%
rename from public/assets/emojis.ts
rename to src/assets/emojis.ts
diff --git a/src/assets/logo.svg b/src/assets/logo.svg
new file mode 100644
index 0000000..336b23a
--- /dev/null
+++ b/src/assets/logo.svg
@@ -0,0 +1,3 @@
+<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M290.947 209.226C290.947 227.612 280.944 238.648 259.595 238.648H224.247V180.471H259.601C280.944 180.471 290.947 191.837 290.947 209.226ZM133 133L167.222 180.583V367.669H224.254V279.094H237.93L286.63 367.689H351L296.969 274.746C312.054 271.066 325.434 262.333 334.893 249.993C344.353 237.652 349.325 222.444 348.986 206.885C348.986 166.096 320.306 133 262.938 133H167.222H133Z" fill="#FF4654" stroke="#FF4654" stroke-width="1.04306"/>
+</svg>
diff --git a/src/assets/logo_round.png b/src/assets/logo_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..acc86aa3ff3ec989fc203533a6b4ec8650c386ed
GIT binary patch
literal 7558
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
Yvwg(8LE=n5_-qOp>YC~lUv!TAA3)$<O#lD@

literal 0
HcmV?d00001

diff --git a/public/assets/wide.svg b/src/assets/wide.svg
similarity index 100%
rename from public/assets/wide.svg
rename to src/assets/wide.svg
diff --git a/src/components/common/ChannelIcon.tsx b/src/components/common/ChannelIcon.tsx
index 2611edb..db8ee88 100644
--- a/src/components/common/ChannelIcon.tsx
+++ b/src/components/common/ChannelIcon.tsx
@@ -8,7 +8,8 @@ interface Props extends IconBaseProps<Channels.GroupChannel | Channels.TextChann
     isServerChannel?: boolean;
 }
 
-const fallback = '/assets/group.png';
+import fallback from './assets/group.png';
+
 export default function ChannelIcon(props: Props & Omit<JSX.HTMLAttributes<HTMLImageElement>, keyof Props>) {
     const client = useContext(AppContext);
 
diff --git a/src/components/common/UserIcon.tsx b/src/components/common/UserIcon.tsx
index 7aa5e37..a78416d 100644
--- a/src/components/common/UserIcon.tsx
+++ b/src/components/common/UserIcon.tsx
@@ -47,7 +47,8 @@ const VoiceIndicator = styled.div<{ status: VoiceStatus }>`
     ` }
 `;
 
-const fallback = '/assets/user.png';
+import fallback from './assets/user.png';
+
 export default function UserIcon(props: Props & Omit<JSX.SVGAttributes<SVGSVGElement>, keyof Props>) {
     const client = useContext(AppContext);
 
diff --git a/public/assets/group.png b/src/components/common/assets/group.png
similarity index 100%
rename from public/assets/group.png
rename to src/components/common/assets/group.png
diff --git a/public/assets/user.png b/src/components/common/assets/user.png
similarity index 100%
rename from public/assets/user.png
rename to src/components/common/assets/user.png
diff --git a/public/assets/images/placeholder.svg b/src/components/navigation/items/placeholder.svg
similarity index 100%
rename from public/assets/images/placeholder.svg
rename to src/components/navigation/items/placeholder.svg
diff --git a/src/components/navigation/left/ServerListSidebar.tsx b/src/components/navigation/left/ServerListSidebar.tsx
index f64e4fe..798675c 100644
--- a/src/components/navigation/left/ServerListSidebar.tsx
+++ b/src/components/navigation/left/ServerListSidebar.tsx
@@ -1,15 +1,17 @@
-import { Channel, Servers } from "revolt.js/dist/api/objects";
-import { Link, useLocation, useParams } from "react-router-dom";
-import { useChannels, useForceUpdate, useServers } from "../../../context/revoltjs/hooks";
+import LineDivider from "../../ui/LineDivider";
 import { mapChannelWithUnread } from "./common";
-import { Unreads } from "../../../redux/reducers/unreads";
-import { connectState } from "../../../redux/connector";
 import styled, { css } from "styled-components";
-import { Children } from "../../../types/Preact";
-import LineDivider from "../../ui/LineDivider";
 import ServerIcon from "../../common/ServerIcon";
+import { Children } from "../../../types/Preact";
 import PaintCounter from "../../../lib/PaintCounter";
 import { attachContextMenu } from 'preact-context-menu';
+import { connectState } from "../../../redux/connector";
+import { Unreads } from "../../../redux/reducers/unreads";
+import { Channel, Servers } from "revolt.js/dist/api/objects";
+import { Link, useLocation, useParams } from "react-router-dom";
+import { useChannels, useForceUpdate, useServers } from "../../../context/revoltjs/hooks";
+
+import logoSVG from '../../../assets/logo.svg';
 
 function Icon({ children, unread, size }: { children: Children, unread?: 'mention' | 'unread', size: number }) {
     return (
@@ -146,7 +148,7 @@ export function ServerListSidebar({ unreads }: Props) {
                     <ServerEntry invert
                         active={typeof server === 'undefined' && !path.startsWith('/invite')}>
                         <Icon size={36} unread={homeUnread}>
-                            <img src="/assets/app_icon.png"  />
+                            <img src={logoSVG} />
                         </Icon>
                     </ServerEntry>
                 </Link>
diff --git a/src/context/intermediate/modals/Onboarding.tsx b/src/context/intermediate/modals/Onboarding.tsx
index 17fc0fd..032aa5f 100644
--- a/src/context/intermediate/modals/Onboarding.tsx
+++ b/src/context/intermediate/modals/Onboarding.tsx
@@ -7,6 +7,8 @@ import Button from "../../../components/ui/Button";
 import FormField from "../../../pages/login/FormField";
 import Preloader from "../../../components/ui/Preloader";
 
+import wideSVG from '../../../assets/wide.svg';
+
 interface Props {
     onClose: () => void;
     callback: (username: string, loginAfterSuccess?: true) => Promise<void>;
@@ -32,7 +34,7 @@ export function OnboardingModal({ onClose, callback }: Props) {
             <div className={styles.header}>
                 <h1>
                     <Text id="app.special.modals.onboarding.welcome" />
-                    <img src="/assets/wide.svg" />
+                    <img src={wideSVG} />
                 </h1>
             </div>
             <div className={styles.form}>
diff --git a/src/pages/home/Home.tsx b/src/pages/home/Home.tsx
index 01371fc..eaa763d 100644
--- a/src/pages/home/Home.tsx
+++ b/src/pages/home/Home.tsx
@@ -4,12 +4,14 @@ import { Link } from "react-router-dom";
 import { Text } from "preact-i18n";
 import Header from "../../components/ui/Header";
 
+import wideSVG from '../../assets/wide.svg';
+
 export default function Home() {
     return (
         <div className={styles.home}>
             <Header placement="primary"><Text id="app.navigation.tabs.home" /></Header>
             <h3>
-                <Text id="app.special.modals.onboarding.welcome" /> <img src="/assets/wide.svg" />
+                <Text id="app.special.modals.onboarding.welcome" /> <img src={wideSVG} />
             </h3>
             <ul>
                 <li>
diff --git a/public/assets/images/dark.svg b/src/pages/settings/assets/dark.svg
similarity index 100%
rename from public/assets/images/dark.svg
rename to src/pages/settings/assets/dark.svg
diff --git a/public/assets/images/light.svg b/src/pages/settings/assets/light.svg
similarity index 100%
rename from public/assets/images/light.svg
rename to src/pages/settings/assets/light.svg
diff --git a/public/assets/images/mutant_emoji.svg b/src/pages/settings/assets/mutant_emoji.svg
similarity index 100%
rename from public/assets/images/mutant_emoji.svg
rename to src/pages/settings/assets/mutant_emoji.svg
diff --git a/public/assets/images/noto_emoji.svg b/src/pages/settings/assets/noto_emoji.svg
similarity index 100%
rename from public/assets/images/noto_emoji.svg
rename to src/pages/settings/assets/noto_emoji.svg
diff --git a/public/assets/images/openmoji_emoji.svg b/src/pages/settings/assets/openmoji_emoji.svg
similarity index 100%
rename from public/assets/images/openmoji_emoji.svg
rename to src/pages/settings/assets/openmoji_emoji.svg
diff --git a/public/assets/images/twemoji_emoji.svg b/src/pages/settings/assets/twemoji_emoji.svg
similarity index 100%
rename from public/assets/images/twemoji_emoji.svg
rename to src/pages/settings/assets/twemoji_emoji.svg
diff --git a/src/pages/settings/panes/Appearance.tsx b/src/pages/settings/panes/Appearance.tsx
index 867d6f0..a746614 100644
--- a/src/pages/settings/panes/Appearance.tsx
+++ b/src/pages/settings/panes/Appearance.tsx
@@ -15,6 +15,14 @@ import { useIntermediate } from "../../../context/intermediate/Intermediate";
 // @ts-ignore
 import pSBC from 'shade-blend-color';
 
+import lightSVG from '../assets/light.svg';
+import darkSVG from '../assets/dark.svg';
+
+import mutantSVG from '../assets/mutant_emoji.svg';
+import notoSVG from '../assets/noto_emoji.svg';
+import openmojiSVG from '../assets/openmoji_emoji.svg';
+import twemojiSVG from '../assets/twemoji_emoji.svg';
+
 interface Props {
     settings: Settings;
 }
@@ -72,7 +80,7 @@ export function Component(props: Props & WithDispatcher) {
             <div className={styles.themes}>
                 <div className={styles.theme}>
                     <img
-                        src="/assets/images/light.svg"
+                        src={lightSVG}
                         data-active={selected === "light"}
                         onClick={() =>
                             selected !== "light" &&
@@ -84,7 +92,7 @@ export function Component(props: Props & WithDispatcher) {
                 </div>
                 <div className={styles.theme}>
                     <img
-                        src="/assets/images/dark.svg"
+                        src={darkSVG}
                         data-active={selected === "dark"}
                         onClick={() =>
                             selected !== "dark" && setTheme({ preset: "dark" })
@@ -131,7 +139,7 @@ export function Component(props: Props & WithDispatcher) {
                         <div className={styles.button}
                             onClick={() => setEmojiPack('mutant')}
                             data-active={emojiPack === 'mutant'}>
-                            <img src="/assets/images/mutant_emoji.svg" draggable={false} />
+                            <img src={mutantSVG} draggable={false} />
                         </div>
                         <h4>Mutant Remix <a href="https://mutant.revolt.chat" target="_blank">(by Revolt)</a></h4>
                     </div>
@@ -139,7 +147,7 @@ export function Component(props: Props & WithDispatcher) {
                         <div className={styles.button}
                             onClick={() => setEmojiPack('twemoji')}
                             data-active={emojiPack === 'twemoji'}>
-                            <img src="/assets/images/twemoji_emoji.svg" draggable={false} />
+                            <img src={twemojiSVG} draggable={false} />
                         </div>
                         <h4>Twemoji</h4>
                     </div>
@@ -149,7 +157,7 @@ export function Component(props: Props & WithDispatcher) {
                         <div className={styles.button}
                             onClick={() => setEmojiPack('openmoji')}
                             data-active={emojiPack === 'openmoji'}>
-                            <img src="/assets/images/openmoji_emoji.svg" draggable={false} />
+                            <img src={openmojiSVG} draggable={false} />
                         </div>
                         <h4>Openmoji</h4>
                     </div>
@@ -157,7 +165,7 @@ export function Component(props: Props & WithDispatcher) {
                         <div className={styles.button}
                             onClick={() => setEmojiPack('noto')}
                             data-active={emojiPack === 'noto'}>
-                            <img src="/assets/images/noto_emoji.svg" draggable={false} />
+                            <img src={notoSVG} draggable={false} />
                         </div>
                         <h4>Noto Emoji</h4>
                     </div>
-- 
GitLab