Re-organise assets to be closer to their respective uses.

This commit is contained in:
Paul 2021-06-20 11:05:12 +01:00
parent 06b4e9bc87
commit 2acb3aeb14
28 changed files with 42 additions and 23 deletions

View file

@ -2,7 +2,8 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <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" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>REVOLT</title> <title>REVOLT</title>
</head> </head>

View file

@ -2,7 +2,7 @@
"version": "0.0.0", "version": "0.0.0",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "rimraf build && tsc && vite build", "build": "rimraf build && tsc --noEmit && vite build",
"preview": "vite preview", "preview": "vite preview",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'", "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
"fmt": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'", "fmt": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View file

@ -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>

Before

Width:  |  Height:  |  Size: 981 B

3
src/assets/logo.svg Normal file
View file

@ -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>

After

Width:  |  Height:  |  Size: 551 B

BIN
src/assets/logo_round.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1,008 B

After

Width:  |  Height:  |  Size: 1,008 B

View file

@ -8,7 +8,8 @@ interface Props extends IconBaseProps<Channels.GroupChannel | Channels.TextChann
isServerChannel?: boolean; 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>) { export default function ChannelIcon(props: Props & Omit<JSX.HTMLAttributes<HTMLImageElement>, keyof Props>) {
const client = useContext(AppContext); const client = useContext(AppContext);

View file

@ -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>) { export default function UserIcon(props: Props & Omit<JSX.SVGAttributes<SVGSVGElement>, keyof Props>) {
const client = useContext(AppContext); const client = useContext(AppContext);

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 515 B

View file

@ -1,15 +1,17 @@
import LineDivider from "../../ui/LineDivider";
import { mapChannelWithUnread } from "./common";
import styled, { css } from "styled-components";
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 { Channel, Servers } from "revolt.js/dist/api/objects";
import { Link, useLocation, useParams } from "react-router-dom"; import { Link, useLocation, useParams } from "react-router-dom";
import { useChannels, useForceUpdate, useServers } from "../../../context/revoltjs/hooks"; import { useChannels, useForceUpdate, useServers } from "../../../context/revoltjs/hooks";
import { mapChannelWithUnread } from "./common";
import { Unreads } from "../../../redux/reducers/unreads"; import logoSVG from '../../../assets/logo.svg';
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 PaintCounter from "../../../lib/PaintCounter";
import { attachContextMenu } from 'preact-context-menu';
function Icon({ children, unread, size }: { children: Children, unread?: 'mention' | 'unread', size: number }) { function Icon({ children, unread, size }: { children: Children, unread?: 'mention' | 'unread', size: number }) {
return ( return (
@ -146,7 +148,7 @@ export function ServerListSidebar({ unreads }: Props) {
<ServerEntry invert <ServerEntry invert
active={typeof server === 'undefined' && !path.startsWith('/invite')}> active={typeof server === 'undefined' && !path.startsWith('/invite')}>
<Icon size={36} unread={homeUnread}> <Icon size={36} unread={homeUnread}>
<img src="/assets/app_icon.png" /> <img src={logoSVG} />
</Icon> </Icon>
</ServerEntry> </ServerEntry>
</Link> </Link>

View file

@ -7,6 +7,8 @@ import Button from "../../../components/ui/Button";
import FormField from "../../../pages/login/FormField"; import FormField from "../../../pages/login/FormField";
import Preloader from "../../../components/ui/Preloader"; import Preloader from "../../../components/ui/Preloader";
import wideSVG from '../../../assets/wide.svg';
interface Props { interface Props {
onClose: () => void; onClose: () => void;
callback: (username: string, loginAfterSuccess?: true) => Promise<void>; callback: (username: string, loginAfterSuccess?: true) => Promise<void>;
@ -32,7 +34,7 @@ export function OnboardingModal({ onClose, callback }: Props) {
<div className={styles.header}> <div className={styles.header}>
<h1> <h1>
<Text id="app.special.modals.onboarding.welcome" /> <Text id="app.special.modals.onboarding.welcome" />
<img src="/assets/wide.svg" /> <img src={wideSVG} />
</h1> </h1>
</div> </div>
<div className={styles.form}> <div className={styles.form}>

View file

@ -4,12 +4,14 @@ import { Link } from "react-router-dom";
import { Text } from "preact-i18n"; import { Text } from "preact-i18n";
import Header from "../../components/ui/Header"; import Header from "../../components/ui/Header";
import wideSVG from '../../assets/wide.svg';
export default function Home() { export default function Home() {
return ( return (
<div className={styles.home}> <div className={styles.home}>
<Header placement="primary"><Text id="app.navigation.tabs.home" /></Header> <Header placement="primary"><Text id="app.navigation.tabs.home" /></Header>
<h3> <h3>
<Text id="app.special.modals.onboarding.welcome" /> <img src="/assets/wide.svg" /> <Text id="app.special.modals.onboarding.welcome" /> <img src={wideSVG} />
</h3> </h3>
<ul> <ul>
<li> <li>

View file

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View file

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -15,6 +15,14 @@ import { useIntermediate } from "../../../context/intermediate/Intermediate";
// @ts-ignore // @ts-ignore
import pSBC from 'shade-blend-color'; 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 { interface Props {
settings: Settings; settings: Settings;
} }
@ -72,7 +80,7 @@ export function Component(props: Props & WithDispatcher) {
<div className={styles.themes}> <div className={styles.themes}>
<div className={styles.theme}> <div className={styles.theme}>
<img <img
src="/assets/images/light.svg" src={lightSVG}
data-active={selected === "light"} data-active={selected === "light"}
onClick={() => onClick={() =>
selected !== "light" && selected !== "light" &&
@ -84,7 +92,7 @@ export function Component(props: Props & WithDispatcher) {
</div> </div>
<div className={styles.theme}> <div className={styles.theme}>
<img <img
src="/assets/images/dark.svg" src={darkSVG}
data-active={selected === "dark"} data-active={selected === "dark"}
onClick={() => onClick={() =>
selected !== "dark" && setTheme({ preset: "dark" }) selected !== "dark" && setTheme({ preset: "dark" })
@ -131,7 +139,7 @@ export function Component(props: Props & WithDispatcher) {
<div className={styles.button} <div className={styles.button}
onClick={() => setEmojiPack('mutant')} onClick={() => setEmojiPack('mutant')}
data-active={emojiPack === 'mutant'}> data-active={emojiPack === 'mutant'}>
<img src="/assets/images/mutant_emoji.svg" draggable={false} /> <img src={mutantSVG} draggable={false} />
</div> </div>
<h4>Mutant Remix <a href="https://mutant.revolt.chat" target="_blank">(by Revolt)</a></h4> <h4>Mutant Remix <a href="https://mutant.revolt.chat" target="_blank">(by Revolt)</a></h4>
</div> </div>
@ -139,7 +147,7 @@ export function Component(props: Props & WithDispatcher) {
<div className={styles.button} <div className={styles.button}
onClick={() => setEmojiPack('twemoji')} onClick={() => setEmojiPack('twemoji')}
data-active={emojiPack === 'twemoji'}> data-active={emojiPack === 'twemoji'}>
<img src="/assets/images/twemoji_emoji.svg" draggable={false} /> <img src={twemojiSVG} draggable={false} />
</div> </div>
<h4>Twemoji</h4> <h4>Twemoji</h4>
</div> </div>
@ -149,7 +157,7 @@ export function Component(props: Props & WithDispatcher) {
<div className={styles.button} <div className={styles.button}
onClick={() => setEmojiPack('openmoji')} onClick={() => setEmojiPack('openmoji')}
data-active={emojiPack === 'openmoji'}> data-active={emojiPack === 'openmoji'}>
<img src="/assets/images/openmoji_emoji.svg" draggable={false} /> <img src={openmojiSVG} draggable={false} />
</div> </div>
<h4>Openmoji</h4> <h4>Openmoji</h4>
</div> </div>
@ -157,7 +165,7 @@ export function Component(props: Props & WithDispatcher) {
<div className={styles.button} <div className={styles.button}
onClick={() => setEmojiPack('noto')} onClick={() => setEmojiPack('noto')}
data-active={emojiPack === 'noto'}> data-active={emojiPack === 'noto'}>
<img src="/assets/images/noto_emoji.svg" draggable={false} /> <img src={notoSVG} draggable={false} />
</div> </div>
<h4>Noto Emoji</h4> <h4>Noto Emoji</h4>
</div> </div>