mirror of
https://github.com/revoltchat/revite.git
synced 2024-11-29 02:10:59 -05:00
revert: "fix(vite): remove "second" compression pass"
This reverts commit 096e0c84c1
.
This commit is contained in:
parent
1d4eed872b
commit
67936f53ed
4 changed files with 182 additions and 235 deletions
|
@ -151,6 +151,7 @@
|
||||||
"typescript": "^4.4.2",
|
"typescript": "^4.4.2",
|
||||||
"ulid": "^2.3.0",
|
"ulid": "^2.3.0",
|
||||||
"use-resize-observer": "^7.0.0",
|
"use-resize-observer": "^7.0.0",
|
||||||
|
"vite-plugin-compression": "^0.3.6",
|
||||||
"vite-plugin-pwa": "^0.8.1",
|
"vite-plugin-pwa": "^0.8.1",
|
||||||
"workbox-precaching": "^6.1.5"
|
"workbox-precaching": "^6.1.5"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,18 +1,15 @@
|
||||||
import { Plus, LinkExternal } from "@styled-icons/boxicons-regular";
|
import { Plus, LinkExternal } from "@styled-icons/boxicons-regular";
|
||||||
import { Cog, Compass } from "@styled-icons/boxicons-solid";
|
import { Cog, Compass } from "@styled-icons/boxicons-solid";
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
import { DragDropContext } from "react-beautiful-dnd";
|
|
||||||
import { Link, useHistory, useLocation, useParams } from "react-router-dom";
|
import { Link, useHistory, useLocation, useParams } from "react-router-dom";
|
||||||
import { RelationshipStatus } from "revolt-api/types/Users";
|
import { RelationshipStatus } from "revolt-api/types/Users";
|
||||||
import styled, { css } from "styled-components";
|
import styled, { css } from "styled-components";
|
||||||
|
|
||||||
import { attachContextMenu } from "preact-context-menu";
|
import { attachContextMenu } from "preact-context-menu";
|
||||||
import { Text } from "preact-i18n";
|
import { Text } from "preact-i18n";
|
||||||
import { useState } from "preact/hooks";
|
|
||||||
|
|
||||||
import ConditionalLink from "../../../lib/ConditionalLink";
|
import ConditionalLink from "../../../lib/ConditionalLink";
|
||||||
import PaintCounter from "../../../lib/PaintCounter";
|
import PaintCounter from "../../../lib/PaintCounter";
|
||||||
import { Draggable, Droppable } from "../../../lib/dnd";
|
|
||||||
import { isTouchscreenDevice } from "../../../lib/isTouchscreenDevice";
|
import { isTouchscreenDevice } from "../../../lib/isTouchscreenDevice";
|
||||||
|
|
||||||
import { useApplicationState } from "../../../mobx/State";
|
import { useApplicationState } from "../../../mobx/State";
|
||||||
|
@ -238,7 +235,7 @@ export default observer(() => {
|
||||||
|
|
||||||
const { server: server_id } = useParams<{ server?: string }>();
|
const { server: server_id } = useParams<{ server?: string }>();
|
||||||
const server = server_id ? client.servers.get(server_id) : undefined;
|
const server = server_id ? client.servers.get(server_id) : undefined;
|
||||||
const [servers, setServers] = useState([...client.servers.values()]);
|
const servers = [...client.servers.values()];
|
||||||
const channels = [...client.channels.values()];
|
const channels = [...client.channels.values()];
|
||||||
|
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
@ -253,246 +250,181 @@ export default observer(() => {
|
||||||
typeof server === "undefined" && !path.startsWith("/invite");
|
typeof server === "undefined" && !path.startsWith("/invite");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DragDropContext
|
<ServersBase>
|
||||||
onDragEnd={(target) => {
|
<ServerList>
|
||||||
if (target.destination) {
|
<ConditionalLink
|
||||||
const arr = [...servers];
|
active={homeActive}
|
||||||
arr.splice(
|
to={state.layout.getLastHomePath()}>
|
||||||
target.destination.index,
|
<ServerEntry home active={homeActive}>
|
||||||
0,
|
<Swoosh />
|
||||||
arr.splice(target.source.index, 1)[0],
|
<div
|
||||||
);
|
onContextMenu={attachContextMenu("Status")}
|
||||||
setServers(arr);
|
onClick={() =>
|
||||||
}
|
homeActive && history.push("/settings")
|
||||||
}}>
|
}>
|
||||||
<ServersBase>
|
<UserHover user={client.user ?? undefined}>
|
||||||
<Droppable droppableId="server_list">
|
<Icon
|
||||||
{(provided) => (
|
size={42}
|
||||||
<ServerList
|
unread={
|
||||||
ref={provided.innerRef}
|
alertCount > 0 ? "mention" : undefined
|
||||||
{...provided.droppableProps}>
|
}
|
||||||
<ConditionalLink
|
count={alertCount}>
|
||||||
active={homeActive}
|
<UserIcon
|
||||||
to={state.layout.getLastHomePath()}>
|
target={client.user ?? undefined}
|
||||||
<ServerEntry home active={homeActive}>
|
size={32}
|
||||||
<Swoosh />
|
status
|
||||||
<div
|
hover
|
||||||
onContextMenu={attachContextMenu(
|
/>
|
||||||
"Status",
|
</Icon>
|
||||||
)}
|
</UserHover>
|
||||||
onClick={() =>
|
</div>
|
||||||
homeActive &&
|
</ServerEntry>
|
||||||
history.push("/settings")
|
</ConditionalLink>
|
||||||
}>
|
{channels
|
||||||
<UserHover
|
.filter(
|
||||||
user={client.user ?? undefined}>
|
(x) =>
|
||||||
<Icon
|
(x.channel_type === "DirectMessage" ||
|
||||||
size={42}
|
x.channel_type === "Group") &&
|
||||||
unread={
|
x.unread,
|
||||||
alertCount > 0
|
)
|
||||||
? "mention"
|
.map((x) => {
|
||||||
: undefined
|
const unreadCount = x.mentions.length;
|
||||||
}
|
return (
|
||||||
count={alertCount}>
|
<Link to={`/channel/${x._id}`}>
|
||||||
|
<ServerEntry
|
||||||
|
home
|
||||||
|
active={false}
|
||||||
|
onContextMenu={attachContextMenu("Menu", {
|
||||||
|
channel: x._id,
|
||||||
|
unread: true,
|
||||||
|
})}>
|
||||||
|
<div>
|
||||||
|
<Icon
|
||||||
|
size={42}
|
||||||
|
unread={
|
||||||
|
unreadCount > 0
|
||||||
|
? "mention"
|
||||||
|
: "unread"
|
||||||
|
}
|
||||||
|
count={unreadCount}>
|
||||||
|
{x.channel_type ===
|
||||||
|
"DirectMessage" ? (
|
||||||
<UserIcon
|
<UserIcon
|
||||||
target={
|
target={x.recipient}
|
||||||
client.user ?? undefined
|
|
||||||
}
|
|
||||||
size={32}
|
size={32}
|
||||||
status
|
|
||||||
hover
|
hover
|
||||||
/>
|
/>
|
||||||
</Icon>
|
) : (
|
||||||
</UserHover>
|
<ChannelIcon
|
||||||
|
target={x}
|
||||||
|
size={32}
|
||||||
|
hover
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</Icon>
|
||||||
</div>
|
</div>
|
||||||
</ServerEntry>
|
</ServerEntry>
|
||||||
</ConditionalLink>
|
</Link>
|
||||||
{channels
|
);
|
||||||
.filter(
|
})}
|
||||||
(x) =>
|
<LineDivider />
|
||||||
(x.channel_type === "DirectMessage" ||
|
{servers.map((server) => {
|
||||||
x.channel_type === "Group") &&
|
const active = server._id === server_id;
|
||||||
x.unread,
|
|
||||||
)
|
|
||||||
.map((x) => {
|
|
||||||
const unreadCount = x.mentions.length;
|
|
||||||
return (
|
|
||||||
<Link to={`/channel/${x._id}`}>
|
|
||||||
<ServerEntry
|
|
||||||
home
|
|
||||||
active={false}
|
|
||||||
onContextMenu={attachContextMenu(
|
|
||||||
"Menu",
|
|
||||||
{
|
|
||||||
channel: x._id,
|
|
||||||
unread: true,
|
|
||||||
},
|
|
||||||
)}>
|
|
||||||
<div>
|
|
||||||
<Icon
|
|
||||||
size={42}
|
|
||||||
unread={
|
|
||||||
unreadCount > 0
|
|
||||||
? "mention"
|
|
||||||
: "unread"
|
|
||||||
}
|
|
||||||
count={unreadCount}>
|
|
||||||
{x.channel_type ===
|
|
||||||
"DirectMessage" ? (
|
|
||||||
<UserIcon
|
|
||||||
target={
|
|
||||||
x.recipient
|
|
||||||
}
|
|
||||||
size={32}
|
|
||||||
hover
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<ChannelIcon
|
|
||||||
target={x}
|
|
||||||
size={32}
|
|
||||||
hover
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</Icon>
|
|
||||||
</div>
|
|
||||||
</ServerEntry>
|
|
||||||
</Link>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
<LineDivider />
|
|
||||||
{servers.map((server, index) => {
|
|
||||||
const active = server._id === server_id;
|
|
||||||
|
|
||||||
const isUnread = server.isUnread(
|
const isUnread = server.isUnread(state.notifications);
|
||||||
state.notifications,
|
const mentionCount = server.getMentions(
|
||||||
);
|
state.notifications,
|
||||||
const mentionCount = server.getMentions(
|
).length;
|
||||||
state.notifications,
|
|
||||||
).length;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Draggable
|
<ConditionalLink
|
||||||
key={server._id}
|
key={server._id}
|
||||||
draggableId={server._id}
|
active={active}
|
||||||
index={index}>
|
to={state.layout.getServerPath(server._id)}>
|
||||||
{(provided, snapshot) => (
|
<ServerEntry
|
||||||
<div
|
active={active}
|
||||||
{...provided.draggableProps}
|
onContextMenu={attachContextMenu("Menu", {
|
||||||
{...provided.dragHandleProps}
|
server: server._id,
|
||||||
ref={provided.innerRef}>
|
unread: isUnread,
|
||||||
<ConditionalLink
|
})}>
|
||||||
active={active}
|
<Swoosh />
|
||||||
to={state.layout.getServerPath(
|
|
||||||
server._id,
|
|
||||||
)}>
|
|
||||||
<ServerEntry
|
|
||||||
active={active}
|
|
||||||
onContextMenu={attachContextMenu(
|
|
||||||
"Menu",
|
|
||||||
{
|
|
||||||
server: server._id,
|
|
||||||
unread: isUnread,
|
|
||||||
},
|
|
||||||
)}>
|
|
||||||
{!snapshot.isDragging && (
|
|
||||||
<Swoosh />
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Tooltip
|
|
||||||
content={
|
|
||||||
server.name
|
|
||||||
}
|
|
||||||
placement="right">
|
|
||||||
<Icon
|
|
||||||
size={42}
|
|
||||||
unread={
|
|
||||||
mentionCount >
|
|
||||||
0
|
|
||||||
? "mention"
|
|
||||||
: isUnread
|
|
||||||
? "unread"
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
count={
|
|
||||||
mentionCount
|
|
||||||
}>
|
|
||||||
<ServerIcon
|
|
||||||
size={32}
|
|
||||||
target={
|
|
||||||
server
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</Icon>
|
|
||||||
</Tooltip>
|
|
||||||
</ServerEntry>
|
|
||||||
</ConditionalLink>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</Draggable>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
{provided.placeholder}
|
|
||||||
<ServerCircle>
|
|
||||||
<Tooltip
|
<Tooltip
|
||||||
content="Add a Server"
|
content={server.name}
|
||||||
placement="right">
|
placement="right">
|
||||||
<div className="circle">
|
<Icon
|
||||||
<IconButton
|
size={42}
|
||||||
onClick={() =>
|
unread={
|
||||||
openScreen({
|
mentionCount > 0
|
||||||
id: "special_input",
|
? "mention"
|
||||||
type: "create_server",
|
: isUnread
|
||||||
})
|
? "unread"
|
||||||
}>
|
: undefined
|
||||||
<Plus size={32} />
|
}
|
||||||
</IconButton>
|
count={mentionCount}>
|
||||||
</div>
|
<ServerIcon size={32} target={server} />
|
||||||
|
</Icon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</ServerCircle>
|
</ServerEntry>
|
||||||
<ServerCircle>
|
</ConditionalLink>
|
||||||
<Tooltip
|
);
|
||||||
content={
|
})}
|
||||||
<div
|
{/*<LineDivider />*/}
|
||||||
style={{
|
<ServerCircle>
|
||||||
display: "flex",
|
<Tooltip content="Add a Server" placement="right">
|
||||||
alignItems: "center",
|
<div className="circle">
|
||||||
gap: "4px",
|
<IconButton
|
||||||
}}>
|
onClick={() =>
|
||||||
<div>Discover Public Servers</div>
|
openScreen({
|
||||||
<LinkExternal size={12} />
|
id: "special_input",
|
||||||
</div>
|
type: "create_server",
|
||||||
}
|
})
|
||||||
placement="right">
|
}>
|
||||||
<div className="circle">
|
<Plus size={32} />
|
||||||
<IconButton>
|
</IconButton>
|
||||||
<a
|
</div>
|
||||||
href="https://revolt.social"
|
</Tooltip>
|
||||||
target="_blank"
|
</ServerCircle>
|
||||||
rel="noreferrer">
|
<ServerCircle>
|
||||||
<Compass size={32} />
|
<Tooltip
|
||||||
</a>
|
content={
|
||||||
</IconButton>
|
<div
|
||||||
</div>
|
style={{
|
||||||
</Tooltip>
|
display: "flex",
|
||||||
</ServerCircle>
|
alignItems: "center",
|
||||||
</ServerList>
|
gap: "4px",
|
||||||
)}
|
}}>
|
||||||
</Droppable>
|
<div>Discover Public Servers</div>
|
||||||
<PaintCounter small />
|
<LinkExternal size={12} />
|
||||||
{!isTouchscreenDevice && (
|
</div>
|
||||||
<SettingsButton>
|
}
|
||||||
<Link to="/settings">
|
placement="right">
|
||||||
<Tooltip
|
<div className="circle">
|
||||||
content={<Text id="app.settings.title" />}
|
<IconButton>
|
||||||
placement="right">
|
<a
|
||||||
<IconButton>
|
href="https://revolt.social"
|
||||||
<Cog size={32} strokeWidth="0.5" />
|
target="_blank"
|
||||||
</IconButton>
|
rel="noreferrer">
|
||||||
</Tooltip>
|
<Compass size={32} />
|
||||||
</Link>
|
</a>
|
||||||
</SettingsButton>
|
</IconButton>
|
||||||
)}
|
</div>
|
||||||
</ServersBase>
|
</Tooltip>
|
||||||
</DragDropContext>
|
</ServerCircle>
|
||||||
|
</ServerList>
|
||||||
|
<PaintCounter small />
|
||||||
|
{!isTouchscreenDevice && (
|
||||||
|
<SettingsButton>
|
||||||
|
<Link to="/settings">
|
||||||
|
<Tooltip
|
||||||
|
content={<Text id="app.settings.title" />}
|
||||||
|
placement="right">
|
||||||
|
<IconButton>
|
||||||
|
<Cog size={32} strokeWidth="0.5" />
|
||||||
|
</IconButton>
|
||||||
|
</Tooltip>
|
||||||
|
</Link>
|
||||||
|
</SettingsButton>
|
||||||
|
)}
|
||||||
|
</ServersBase>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,6 +2,7 @@ import replace from "@rollup/plugin-replace";
|
||||||
import { readFileSync } from "fs";
|
import { readFileSync } from "fs";
|
||||||
import { resolve } from "path";
|
import { resolve } from "path";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
|
import viteCompression from "vite-plugin-compression";
|
||||||
import { VitePWA } from "vite-plugin-pwa";
|
import { VitePWA } from "vite-plugin-pwa";
|
||||||
|
|
||||||
import preact from "@preact/preset-vite";
|
import preact from "@preact/preset-vite";
|
||||||
|
@ -42,6 +43,10 @@ function getVersion() {
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
|
viteCompression({
|
||||||
|
verbose: true,
|
||||||
|
algorithm: "brotliCompress",
|
||||||
|
}),
|
||||||
preact(),
|
preact(),
|
||||||
VitePWA({
|
VitePWA({
|
||||||
srcDir: "src",
|
srcDir: "src",
|
||||||
|
|
11
yarn.lock
11
yarn.lock
|
@ -1887,7 +1887,7 @@ chalk@^2.0.0:
|
||||||
escape-string-regexp "^1.0.5"
|
escape-string-regexp "^1.0.5"
|
||||||
supports-color "^5.3.0"
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
chalk@^4.0.0:
|
chalk@^4.0.0, chalk@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||||
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
||||||
|
@ -4357,6 +4357,15 @@ value-equal@^1.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
|
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
|
||||||
integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
|
integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
|
||||||
|
|
||||||
|
vite-plugin-compression@^0.3.6:
|
||||||
|
version "0.3.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/vite-plugin-compression/-/vite-plugin-compression-0.3.6.tgz#85e3ce5047ae6747bc3952177177a852fac901be"
|
||||||
|
integrity sha512-aSskQCJsP3VQ8PsnY+vO7UfD5qoFMOEuzg0PG2E9Zqyx+ARmc3wr9KCgOFraZOFW1Y4UAa5BR0SMTjoxHRMJoQ==
|
||||||
|
dependencies:
|
||||||
|
chalk "^4.1.2"
|
||||||
|
debug "^4.3.2"
|
||||||
|
fs-extra "^10.0.0"
|
||||||
|
|
||||||
vite-plugin-pwa@^0.8.1:
|
vite-plugin-pwa@^0.8.1:
|
||||||
version "0.8.2"
|
version "0.8.2"
|
||||||
resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.8.2.tgz#2789a157e2f71faf834d968945efc22eee9ad64a"
|
resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.8.2.tgz#2789a157e2f71faf834d968945efc22eee9ad64a"
|
||||||
|
|
Loading…
Reference in a new issue