mirror of
https://github.com/revoltchat/revite.git
synced 2024-12-24 06:32:08 -05:00
Update: Changed icon pack to Boxicons
This commit is contained in:
parent
a6ba6d5c5b
commit
4102b69ca4
40 changed files with 113 additions and 116 deletions
|
@ -1,6 +1,6 @@
|
|||
import { useContext } from "preact/hooks";
|
||||
import { Channels } from "revolt.js/dist/api/objects";
|
||||
import { Hash, Volume2 } from "@styled-icons/feather";
|
||||
import { Hash, VolumeFull } from "@styled-icons/boxicons-regular";
|
||||
import { ImageIconBase, IconBaseProps } from "./IconBase";
|
||||
import { AppContext } from "../../context/revoltjs/RevoltClient";
|
||||
|
||||
|
@ -21,7 +21,7 @@ export default function ChannelIcon(props: Props & Omit<JSX.HTMLAttributes<HTMLI
|
|||
if (isServerChannel) {
|
||||
if (target?.channel_type === 'VoiceChannel') {
|
||||
return (
|
||||
<Volume2 size={size} />
|
||||
<VolumeFull size={size} />
|
||||
)
|
||||
} else {
|
||||
return (
|
||||
|
|
|
@ -2,7 +2,7 @@ import Header from "../ui/Header";
|
|||
import styled from "styled-components";
|
||||
import { Link } from "react-router-dom";
|
||||
import IconButton from "../ui/IconButton";
|
||||
import { Settings } from "@styled-icons/feather";
|
||||
import { Cog } from "@styled-icons/boxicons-solid";
|
||||
import { Server } from "revolt.js/dist/api/objects";
|
||||
import { ServerPermission } from "revolt.js/dist/api/permissions";
|
||||
import { HookContext, useServerPermission } from "../../context/revoltjs/hooks";
|
||||
|
@ -30,7 +30,7 @@ export default function ServerHeader({ server, ctx }: Props) {
|
|||
{ (permissions & ServerPermission.ManageServer) > 0 && <div className="actions">
|
||||
<Link to={`/server/${server._id}/settings`}>
|
||||
<IconButton>
|
||||
<Settings size={24} />
|
||||
<Cog size={24} />
|
||||
</IconButton>
|
||||
</Link>
|
||||
</div> }
|
||||
|
|
|
@ -4,7 +4,7 @@ import { Channel } from "revolt.js";
|
|||
import styled from "styled-components";
|
||||
import { defer } from "../../../lib/defer";
|
||||
import IconButton from "../../ui/IconButton";
|
||||
import { Send, X } from '@styled-icons/feather';
|
||||
import { Send, X } from '@styled-icons/boxicons-regular';
|
||||
import { debounce } from "../../../lib/debounce";
|
||||
import Axios, { CancelTokenSource } from "axios";
|
||||
import { useTranslation } from "../../../lib/i18n";
|
||||
|
|
|
@ -4,7 +4,7 @@ import IconButton from '../../../ui/IconButton';
|
|||
import { Attachment } from "revolt.js/dist/api/objects";
|
||||
import { determineFileSize } from '../../../../lib/fileSize';
|
||||
import { AppContext } from '../../../../context/revoltjs/RevoltClient';
|
||||
import { Download, ExternalLink, File, Headphones, Video } from '@styled-icons/feather';
|
||||
import { Download, LinkExternal, File, Headphone, Video } from '@styled-icons/boxicons-regular';
|
||||
|
||||
interface Props {
|
||||
attachment: Attachment;
|
||||
|
@ -30,7 +30,7 @@ export default function AttachmentActions({ attachment }: Props) {
|
|||
</div>
|
||||
<a href={open_url} target="_blank">
|
||||
<IconButton>
|
||||
<ExternalLink size={24} />
|
||||
<LinkExternal size={24} />
|
||||
</IconButton>
|
||||
</a>
|
||||
<a href={download_url} download target="_blank">
|
||||
|
@ -43,14 +43,14 @@ export default function AttachmentActions({ attachment }: Props) {
|
|||
case 'Audio':
|
||||
return (
|
||||
<div className={styles.actions}>
|
||||
<Headphones size={24} strokeWidth={1.5} />
|
||||
<Headphone size={24} />
|
||||
<div className={styles.info}>
|
||||
<span className={styles.filename}>{filename}</span>
|
||||
<span className={styles.filesize}>{filesize}</span>
|
||||
</div>
|
||||
<a href={download_url} download target="_blank">
|
||||
<IconButton>
|
||||
<Download size={24} strokeWidth={1.5} />
|
||||
<Download size={24} />
|
||||
</IconButton>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -58,14 +58,14 @@ export default function AttachmentActions({ attachment }: Props) {
|
|||
case 'Video':
|
||||
return (
|
||||
<div className={styles.actions}>
|
||||
<Video size={24} strokeWidth={1.5} />
|
||||
<Video size={24} />
|
||||
<div className={styles.info}>
|
||||
<span className={styles.filename}>{filename}</span>
|
||||
<span className={styles.filesize}>{metadata.width + 'x' + metadata.height} ({filesize})</span>
|
||||
</div>
|
||||
<a href={download_url} download target="_blank">
|
||||
<IconButton>
|
||||
<Download size={24} strokeWidth={1.5}/>
|
||||
<Download size={24} />
|
||||
</IconButton>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -73,14 +73,14 @@ export default function AttachmentActions({ attachment }: Props) {
|
|||
default:
|
||||
return (
|
||||
<div className={styles.actions}>
|
||||
<File size={24} strokeWidth={1.5} />
|
||||
<File size={24} />
|
||||
<div className={styles.info}>
|
||||
<span className={styles.filename}>{filename}</span>
|
||||
<span className={styles.filesize}>{filesize}</span>
|
||||
</div>
|
||||
<a href={download_url} download target="_blank">
|
||||
<IconButton>
|
||||
<Download size={24} strokeWidth={1.5} />
|
||||
<Download size={24} />
|
||||
</IconButton>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,7 @@ import { Text } from "preact-i18n";
|
|||
import UserShort from "../../user/UserShort";
|
||||
import styled, { css } from "styled-components";
|
||||
import Markdown from "../../../markdown/Markdown";
|
||||
import { CornerUpRight, File } from "@styled-icons/feather";
|
||||
import { Reply, File } from "@styled-icons/boxicons-regular";
|
||||
import { useUser } from "../../../../context/revoltjs/hooks";
|
||||
import { useRenderState } from "../../../../lib/renderer/Singleton";
|
||||
|
||||
|
@ -52,7 +52,7 @@ export function MessageReply({ index, channel, id }: Props) {
|
|||
if (!message) {
|
||||
return (
|
||||
<ReplyBase head={index === 0} fail>
|
||||
<CornerUpRight size={16} />
|
||||
<Reply size={16} />
|
||||
<span><Text id="app.main.channel.misc.failed_load" /></span>
|
||||
</ReplyBase>
|
||||
)
|
||||
|
@ -62,7 +62,7 @@ export function MessageReply({ index, channel, id }: Props) {
|
|||
|
||||
return (
|
||||
<ReplyBase head={index === 0}>
|
||||
<CornerUpRight size={16} />
|
||||
<Reply size={16} />
|
||||
<UserShort user={user} size={16} />
|
||||
{ message.attachments && message.attachments.length > 0 && <File size={16} /> }
|
||||
<Markdown disallowBigEmoji content={(message.content as string).replace(/\n/g, ' ')} />
|
||||
|
|
|
@ -3,7 +3,7 @@ import styled from "styled-components";
|
|||
import { CAN_UPLOAD_AT_ONCE, UploadState } from "../MessageBox";
|
||||
import { useEffect, useState } from 'preact/hooks';
|
||||
import { determineFileSize } from '../../../../lib/fileSize';
|
||||
import { XCircle, Plus, Share, X, FileText } from "@styled-icons/feather";
|
||||
import { XCircle, Plus, Share, X, File } from "@styled-icons/boxicons-regular";
|
||||
|
||||
interface Props {
|
||||
state: UploadState,
|
||||
|
@ -133,7 +133,7 @@ function FileEntry({ file, remove, index }: { file: File, remove?: () => void, i
|
|||
<Entry className={index >= CAN_UPLOAD_AT_ONCE ? 'fade' : ''}>
|
||||
<PreviewBox onClick={remove}>
|
||||
<EmptyEntry className="icon">
|
||||
<FileText size={36} />
|
||||
<File size={36} />
|
||||
</EmptyEntry>
|
||||
<div class="overlay"><XCircle size={36} /></div>
|
||||
</PreviewBox>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Text } from "preact-i18n";
|
||||
import styled from "styled-components";
|
||||
import { ArrowDown } from "@styled-icons/feather";
|
||||
import { DownArrow } from "@styled-icons/boxicons-regular";
|
||||
import { SingletonMessageRenderer, useRenderState } from "../../../../lib/renderer/Singleton";
|
||||
|
||||
const Bar = styled.div`
|
||||
|
@ -46,7 +46,7 @@ export default function JumpToBottom({ id }: { id: string }) {
|
|||
<Bar>
|
||||
<div onClick={() => SingletonMessageRenderer.jumpToBottom(id, true)}>
|
||||
<div><Text id="app.main.channel.misc.viewing_old" /></div>
|
||||
<div><Text id="app.main.channel.misc.jump_present" /> <ArrowDown size={18} strokeWidth={2}/></div>
|
||||
<div><Text id="app.main.channel.misc.jump_present" /> <DownArrow size={18}/></div>
|
||||
</div>
|
||||
</Bar>
|
||||
)
|
||||
|
|
|
@ -9,7 +9,7 @@ import { Reply } from "../../../../redux/reducers/queue";
|
|||
import { useUsers } from "../../../../context/revoltjs/hooks";
|
||||
import { internalSubscribe } from "../../../../lib/eventEmitter";
|
||||
import { useRenderState } from "../../../../lib/renderer/Singleton";
|
||||
import { AtSign, CornerUpRight, File, XCircle } from "@styled-icons/feather";
|
||||
import { At, Reply as ReplyIcon, File, XCircle } from "@styled-icons/boxicons-regular";
|
||||
|
||||
interface Props {
|
||||
channel: string,
|
||||
|
@ -71,7 +71,7 @@ export default function ReplyBar({ channel, replies, setReplies }: Props) {
|
|||
return (
|
||||
<Base key={reply.id}>
|
||||
<ReplyBase preview>
|
||||
<CornerUpRight size={22} />
|
||||
<ReplyIcon size={22} />
|
||||
<UserShort user={user} size={16} />
|
||||
{ message.attachments && message.attachments.length > 0 && <File size={16} /> }
|
||||
<Markdown disallowBigEmoji content={(message.content as string).replace(/\n/g, ' ')} />
|
||||
|
@ -79,7 +79,7 @@ export default function ReplyBar({ channel, replies, setReplies }: Props) {
|
|||
<span class="actions">
|
||||
<IconButton onClick={() => setReplies(replies.map((_, i) => i === index ? { ..._, mention: !_.mention } : _))}>
|
||||
<span class="toggle">
|
||||
<AtSign size={16} /> { reply.mention ? 'ON' : 'OFF' }
|
||||
<At size={16} /> { reply.mention ? 'ON' : 'OFF' }
|
||||
</span>
|
||||
</IconButton>
|
||||
<IconButton onClick={() => setReplies(replies.filter((_, i) => i !== index))}>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import styles from './Embed.module.scss';
|
||||
import IconButton from '../../../ui/IconButton';
|
||||
import { ExternalLink } from '@styled-icons/feather';
|
||||
import { LinkExternal } from '@styled-icons/boxicons-regular';
|
||||
import { EmbedImage } from "revolt.js/dist/api/objects";
|
||||
|
||||
interface Props {
|
||||
|
@ -18,7 +18,7 @@ export default function EmbedMediaActions({ embed }: Props) {
|
|||
</div>
|
||||
<a href={embed.url} target="_blank">
|
||||
<IconButton>
|
||||
<ExternalLink size={24} />
|
||||
<LinkExternal size={24} />
|
||||
</IconButton>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -8,7 +8,7 @@ import styled from "styled-components";
|
|||
import { Localizer } from 'preact-i18n';
|
||||
import { Link } from "react-router-dom";
|
||||
import IconButton from "../../ui/IconButton";
|
||||
import { Settings } from "@styled-icons/feather";
|
||||
import { Cog } from "@styled-icons/boxicons-solid";
|
||||
import { openContextMenu } from "preact-context-menu";
|
||||
import { isTouchscreenDevice } from "../../../lib/isTouchscreenDevice";
|
||||
import { useIntermediate } from "../../../context/intermediate/Intermediate";
|
||||
|
@ -76,7 +76,7 @@ export default function UserHeader({ user }: Props) {
|
|||
{ !isTouchscreenDevice && <div className="actions">
|
||||
<Link to="/settings">
|
||||
<IconButton>
|
||||
<Settings size={24} />
|
||||
<Cog size={24} />
|
||||
</IconButton>
|
||||
</Link>
|
||||
</div> }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { User } from "revolt.js";
|
||||
import { useContext } from "preact/hooks";
|
||||
import { MicOff } from "@styled-icons/feather";
|
||||
import { MicrophoneOff } from "@styled-icons/boxicons-regular";
|
||||
import styled, { css } from "styled-components";
|
||||
import { Users } from "revolt.js/dist/api/objects";
|
||||
import { ThemeContext } from "../../../context/Theme";
|
||||
|
@ -83,7 +83,7 @@ export default function UserIcon(props: Props & Omit<JSX.SVGAttributes<SVGSVGEle
|
|||
width="10"
|
||||
height="10">
|
||||
<VoiceIndicator status={props.voice}>
|
||||
{props.voice === "muted" && <MicOff size={6} />}
|
||||
{props.voice === "muted" && <MicrophoneOff size={6} />}
|
||||
</VoiceIndicator>
|
||||
</foreignObject>
|
||||
)}
|
||||
|
|
|
@ -4,7 +4,7 @@ import styled, { css } from "styled-components";
|
|||
import { useSelf } from "../../context/revoltjs/hooks";
|
||||
import { useHistory, useLocation } from "react-router";
|
||||
import ConditionalLink from "../../lib/ConditionalLink";
|
||||
import { MessageCircle, Users } from "@styled-icons/feather";
|
||||
import { MessageRounded, Group } from "@styled-icons/boxicons-regular";
|
||||
|
||||
const NavigationBase = styled.div`
|
||||
z-index: 10;
|
||||
|
@ -50,13 +50,13 @@ export default function BottomNavigation() {
|
|||
}
|
||||
}
|
||||
}}>
|
||||
<MessageCircle size={26} />
|
||||
<MessageRounded size={26} />
|
||||
</IconButton>
|
||||
</Button>
|
||||
<Button active={friendsActive}>
|
||||
<ConditionalLink active={friendsActive} to="/friends">
|
||||
<IconButton>
|
||||
<Users size={26} />
|
||||
<Group size={26} />
|
||||
</IconButton>
|
||||
</ConditionalLink>
|
||||
</Button>
|
||||
|
|
|
@ -3,7 +3,7 @@ import styles from "./Item.module.scss";
|
|||
import Tooltip from '../../common/Tooltip';
|
||||
import IconButton from '../../ui/IconButton';
|
||||
import { Localizer, Text } from "preact-i18n";
|
||||
import { X, Zap } from "@styled-icons/feather";
|
||||
import { X, Crown } from "@styled-icons/boxicons-regular";
|
||||
import { Children } from "../../../types/Preact";
|
||||
import UserIcon from '../../common/user/UserIcon';
|
||||
import ChannelIcon from '../../common/ChannelIcon';
|
||||
|
@ -65,7 +65,7 @@ export function UserButton({ active, alert, alertCount, user, context, channel }
|
|||
<Text id="app.main.groups.owner" />
|
||||
}
|
||||
>
|
||||
<Zap size={20} />
|
||||
<Crown size={20} />
|
||||
</Tooltip>
|
||||
</Localizer>
|
||||
)}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Localizer, Text } from "preact-i18n";
|
||||
import { useContext, useEffect } from "preact/hooks";
|
||||
import { Home, Users, Tool, Save } from "@styled-icons/feather";
|
||||
import { Home, Group, Wrench, Save } from "@styled-icons/boxicons-regular";
|
||||
|
||||
import Category from '../../ui/Category';
|
||||
import PaintCounter from "../../../lib/PaintCounter";
|
||||
|
@ -83,7 +83,7 @@ function HomeSidebar(props: Props) {
|
|||
) !== "undefined" ? 'unread' : undefined
|
||||
}
|
||||
>
|
||||
<Users size={20} />
|
||||
<Group size={20} />
|
||||
<span><Text id="app.navigation.tabs.friends" /></span>
|
||||
</ButtonItem>
|
||||
</ConditionalLink>
|
||||
|
@ -98,7 +98,7 @@ function HomeSidebar(props: Props) {
|
|||
{import.meta.env.DEV && (
|
||||
<Link to="/dev">
|
||||
<ButtonItem active={pathname === "/dev"}>
|
||||
<Tool size={20} />
|
||||
<Wrench size={20} />
|
||||
<span><Text id="app.navigation.tabs.dev" /></span>
|
||||
</ButtonItem>
|
||||
</Link>
|
||||
|
|
|
@ -4,7 +4,7 @@ import { mapChannelWithUnread } from "./common";
|
|||
import styled, { css } from "styled-components";
|
||||
import ServerIcon from "../../common/ServerIcon";
|
||||
import { Children } from "../../../types/Preact";
|
||||
import { PlusCircle } from "@styled-icons/feather";
|
||||
import { Plus } from "@styled-icons/boxicons-regular";
|
||||
import PaintCounter from "../../../lib/PaintCounter";
|
||||
import { attachContextMenu } from 'preact-context-menu';
|
||||
import { connectState } from "../../../redux/connector";
|
||||
|
@ -51,7 +51,7 @@ function Icon({ children, unread, size }: { children: Children, unread?: 'mentio
|
|||
}
|
||||
|
||||
const ServersBase = styled.div`
|
||||
width: 52px;
|
||||
width: 72px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -183,7 +183,7 @@ export function ServerListSidebar({ unreads, lastOpened }: Props) {
|
|||
})
|
||||
}
|
||||
<IconButton onClick={() => openScreen({ id: 'special_input', type: 'create_server' })}>
|
||||
<PlusCircle size={36} />
|
||||
<Plus size={36} />
|
||||
</IconButton>
|
||||
<PaintCounter small />
|
||||
</ServerList>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import styled, { css } from "styled-components";
|
||||
import { Children } from "../../types/Preact";
|
||||
import { Plus } from "@styled-icons/feather";
|
||||
import { Plus } from "@styled-icons/boxicons-regular";
|
||||
|
||||
const CategoryBase = styled.div<Pick<Props, 'variant'>>`
|
||||
font-size: 12px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Check } from "@styled-icons/feather";
|
||||
import { Check } from "@styled-icons/boxicons-regular";
|
||||
import { Children } from "../../types/Preact";
|
||||
import styled, { css } from "styled-components";
|
||||
|
||||
|
@ -59,7 +59,6 @@ const Checkmark = styled.div<{ checked: boolean }>`
|
|||
|
||||
svg {
|
||||
color: var(--secondary-background);
|
||||
stroke-width: 2;
|
||||
}
|
||||
|
||||
${(props) =>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import { useRef } from "preact/hooks";
|
||||
import { Check } from "@styled-icons/feather";
|
||||
import { Check, Pencil } from "@styled-icons/boxicons-regular";
|
||||
import styled, { css } from "styled-components";
|
||||
import { Pencil } from "@styled-icons/bootstrap";
|
||||
|
||||
interface Props {
|
||||
value: string;
|
||||
|
@ -68,7 +67,7 @@ const Swatch = styled.div<{ type: "small" | "large"; colour: string }>`
|
|||
height: 30px;
|
||||
|
||||
svg {
|
||||
stroke-width: 2;
|
||||
/*stroke-width: 2;*/
|
||||
}
|
||||
`
|
||||
: css`
|
||||
|
@ -118,7 +117,7 @@ export default function ColourSwatches({ value, onChange }: Props) {
|
|||
onClick={() => onChange(swatch)}
|
||||
>
|
||||
{swatch === value && (
|
||||
<Check size={18} strokeWidth={2} />
|
||||
<Check size={18} />
|
||||
)}
|
||||
</Swatch>
|
||||
))}
|
||||
|
|
|
@ -15,7 +15,7 @@ export default styled.div<Props>`
|
|||
|
||||
fill: ${normal};
|
||||
color: ${normal};
|
||||
stroke: ${normal};
|
||||
/*stroke: ${normal};*/
|
||||
|
||||
a {
|
||||
color: ${normal};
|
||||
|
@ -24,7 +24,7 @@ export default styled.div<Props>`
|
|||
&:hover {
|
||||
fill: ${hover};
|
||||
color: ${hover};
|
||||
stroke: ${hover};
|
||||
/*stroke: ${hover};*/
|
||||
|
||||
a {
|
||||
color: ${hover};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Children } from "../../types/Preact";
|
||||
import styled, { css } from "styled-components";
|
||||
import { CircleFill } from "@styled-icons/bootstrap";
|
||||
import { Circle } from "@styled-icons/boxicons-regular";
|
||||
|
||||
interface Props {
|
||||
children: Children;
|
||||
|
@ -48,7 +48,7 @@ const RadioBase = styled.label<BaseProps>`
|
|||
|
||||
svg {
|
||||
color: var(--foreground);
|
||||
stroke-width: 2;
|
||||
/*stroke-width: 2;*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ export default function Radio(props: Props) {
|
|||
}
|
||||
>
|
||||
<div>
|
||||
<CircleFill size={12} />
|
||||
<Circle size={12} />
|
||||
</div>
|
||||
<input type="radio" checked={props.checked} />
|
||||
<span>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import styled from "styled-components";
|
||||
import { Info } from "@styled-icons/feather";
|
||||
import { InfoCircle } from "@styled-icons/boxicons-regular";
|
||||
import { Children } from "../../types/Preact";
|
||||
|
||||
export const TipBase = styled.div`
|
||||
|
@ -29,7 +29,7 @@ export const TipBase = styled.div`
|
|||
export default function Tip(props: { children: Children }) {
|
||||
return (
|
||||
<TipBase>
|
||||
<Info size={20} strokeWidth={2} />
|
||||
<InfoCircle size={20} />
|
||||
<span>{props.children}</span>
|
||||
</TipBase>
|
||||
);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { X } from "@styled-icons/feather";
|
||||
import { X } from "@styled-icons/boxicons-regular";
|
||||
import styles from "./ChannelInfo.module.scss";
|
||||
import Modal from "../../../components/ui/Modal";
|
||||
import { getChannelName } from "../../revoltjs/util";
|
||||
|
|
|
@ -6,7 +6,6 @@ import Modal from "../../../components/ui/Modal";
|
|||
import { Route } from "revolt.js/dist/api/routes";
|
||||
import { Users } from "revolt.js/dist/api/objects";
|
||||
import { useIntermediate } from "../Intermediate";
|
||||
import { CashStack } from "@styled-icons/bootstrap";
|
||||
import Preloader from "../../../components/ui/Preloader";
|
||||
import Tooltip from '../../../components/common/Tooltip';
|
||||
import IconButton from "../../../components/ui/IconButton";
|
||||
|
@ -15,7 +14,7 @@ import { UserPermission } from "revolt.js/dist/api/permissions";
|
|||
import UserIcon from '../../../components/common/user/UserIcon';
|
||||
import ChannelIcon from '../../../components/common/ChannelIcon';
|
||||
import UserStatus from '../../../components/common/user/UserStatus';
|
||||
import { Mail, Edit, UserPlus, Shield } from "@styled-icons/feather";
|
||||
import { Envelope, Edit, UserPlus, Shield, Money } from "@styled-icons/boxicons-regular";
|
||||
import { useContext, useEffect, useLayoutEffect, useState } from "preact/hooks";
|
||||
import { AppContext, ClientStatus, StatusContext } from "../../revoltjs/RevoltClient";
|
||||
import { useChannels, useForceUpdate, useUserPermission, useUsers } from "../../revoltjs/hooks";
|
||||
|
@ -160,7 +159,7 @@ export function UserProfile({ user_id, onClose, dummy, dummyProfile }: Props) {
|
|||
onClose();
|
||||
history.push(`/open/${user_id}`);
|
||||
}}>
|
||||
<Mail size={30} strokeWidth={1.5} />
|
||||
<Envelope size={30} />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Localizer>
|
||||
|
@ -172,13 +171,13 @@ export function UserProfile({ user_id, onClose, dummy, dummyProfile }: Props) {
|
|||
if (dummy) return;
|
||||
history.push(`/settings/profile`);
|
||||
}}>
|
||||
<Edit size={28} strokeWidth={1.5} />
|
||||
<Edit size={28} />
|
||||
</IconButton>
|
||||
)}
|
||||
{(user.relationship === Users.Relationship.Incoming ||
|
||||
user.relationship === Users.Relationship.None) && (
|
||||
<IconButton onClick={() => client.users.addFriend(user.username)}>
|
||||
<UserPlus size={28} strokeWidth={1.5} />
|
||||
<UserPlus size={28} />
|
||||
</IconButton>
|
||||
)}
|
||||
</div>
|
||||
|
@ -255,7 +254,7 @@ export function UserProfile({ user_id, onClose, dummy, dummyProfile }: Props) {
|
|||
<Text id="app.special.popovers.user_profile.badges.supporter" />
|
||||
}
|
||||
>
|
||||
<CashStack size={32} color="#efab44" />
|
||||
<Money size={32} color="#efab44" />
|
||||
</Tooltip>
|
||||
) : (
|
||||
<></>
|
||||
|
|
|
@ -8,7 +8,7 @@ import { useContext, useEffect, useState } from "preact/hooks";
|
|||
import Preloader from "../../components/ui/Preloader";
|
||||
import { determineFileSize } from "../../lib/fileSize";
|
||||
import IconButton from '../../components/ui/IconButton';
|
||||
import { Edit, Plus, X, XCircle } from "@styled-icons/feather";
|
||||
import { Edit, Plus, X, XCircle } from "@styled-icons/boxicons-regular";
|
||||
import { useIntermediate } from "../intermediate/Intermediate";
|
||||
|
||||
type Props = {
|
||||
|
|
|
@ -2,7 +2,7 @@ import { Text } from "preact-i18n";
|
|||
import styled from "styled-components";
|
||||
import { useContext } from "preact/hooks";
|
||||
import { Children } from "../../types/Preact";
|
||||
import { WifiOff } from "@styled-icons/feather";
|
||||
import { WifiOff } from "@styled-icons/boxicons-regular";
|
||||
import Preloader from "../../components/ui/Preloader";
|
||||
import { ClientStatus, StatusContext } from "./RevoltClient";
|
||||
|
||||
|
|
|
@ -19,9 +19,8 @@ import { Children } from "../types/Preact";
|
|||
import LineDivider from "../components/ui/LineDivider";
|
||||
import { connectState } from "../redux/connector";
|
||||
import { internalEmit } from "./eventEmitter";
|
||||
import { AtSign, Bell, BellOff, Check, CheckSquare, ChevronRight, Slash, Square } from "@styled-icons/feather";
|
||||
import { At, Bell, BellOff, Check, CheckSquare, ChevronRight, Block, Square, LeftArrowAlt } from "@styled-icons/boxicons-regular";
|
||||
import { getNotificationState, Notifications, NotificationState } from "../redux/reducers/notifications";
|
||||
import { ArrowLeft } from "@styled-icons/bootstrap";
|
||||
|
||||
interface ContextMenuData {
|
||||
user?: string;
|
||||
|
@ -718,16 +717,16 @@ function ContextMenus(props: Props) {
|
|||
<MenuItem data={{ action: "set_notification_state", key: channel._id, state: key }}>
|
||||
{ icon }
|
||||
<Text id={`app.main.channel.notifications.${key}`} />
|
||||
{ (state === undefined && actual === key) && <div className="tip"><ArrowLeft size={20} /></div> }
|
||||
{ (state === undefined && actual === key) && <div className="tip"><LeftArrowAlt size={20} /></div> }
|
||||
{ (state === key) && <div className="tip"><Check size={20} /></div> }
|
||||
</MenuItem>
|
||||
);
|
||||
}
|
||||
|
||||
generate('all', <Bell size={24} />);
|
||||
generate('mention', <AtSign size={24} />);
|
||||
generate('mention', <At size={24} />);
|
||||
generate('muted', <BellOff size={24} />);
|
||||
generate('none', <Slash size={24} />);
|
||||
generate('none', <Block size={24} />);
|
||||
|
||||
return elements;
|
||||
}}
|
||||
|
|
|
@ -7,7 +7,7 @@ import Markdown from "../../components/markdown/Markdown";
|
|||
import { getChannelName } from "../../context/revoltjs/util";
|
||||
import UserStatus from "../../components/common/user/UserStatus";
|
||||
import { AppContext } from "../../context/revoltjs/RevoltClient";
|
||||
import { Save, AtSign, Users, Hash } from "@styled-icons/feather";
|
||||
import { Save, At, Group, Hash } from "@styled-icons/boxicons-regular";
|
||||
import { useStatusColour } from "../../components/common/user/UserIcon";
|
||||
import { useIntermediate } from "../../context/intermediate/Intermediate";
|
||||
|
||||
|
@ -57,18 +57,18 @@ export default function ChannelHeader({ channel, toggleSidebar }: ChannelHeaderP
|
|||
let icon, recipient;
|
||||
switch (channel.channel_type) {
|
||||
case "SavedMessages":
|
||||
icon = <Save size={20} strokeWidth={1.5} />;
|
||||
icon = <Save size={20} />;
|
||||
break;
|
||||
case "DirectMessage":
|
||||
icon = <AtSign size={20} strokeWidth={1.5} />;
|
||||
icon = <At size={20} />;
|
||||
const uid = client.channels.getRecipient(channel._id);
|
||||
recipient = client.users.get(uid);
|
||||
break;
|
||||
case "Group":
|
||||
icon = <Users size={20} strokeWidth={1.5} />;
|
||||
icon = <Group size={20} />;
|
||||
break;
|
||||
case "TextChannel":
|
||||
icon = <Hash size={20} strokeWidth={1.5} />;
|
||||
icon = <Hash size={20} />;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import { AppContext } from "../../../context/revoltjs/RevoltClient";
|
|||
import { isTouchscreenDevice } from "../../../lib/isTouchscreenDevice";
|
||||
import { useIntermediate } from "../../../context/intermediate/Intermediate";
|
||||
import { VoiceContext, VoiceOperationsContext, VoiceStatus } from "../../../context/Voice";
|
||||
import { UserPlus, Settings, Sidebar as SidebarIcon, PhoneCall, PhoneOff } from "@styled-icons/feather";
|
||||
import { UserPlus, Cog, Sidebar as SidebarIcon, PhoneCall, PhoneOutgoing } from "@styled-icons/boxicons-regular";
|
||||
|
||||
export default function HeaderActions({ channel, toggleSidebar }: ChannelHeaderProps) {
|
||||
const { openScreen } = useIntermediate();
|
||||
|
@ -30,7 +30,7 @@ export default function HeaderActions({ channel, toggleSidebar }: ChannelHeaderP
|
|||
<UserPlus size={22} />
|
||||
</IconButton>
|
||||
<IconButton onClick={() => history.push(`/channel/${channel._id}/settings`)}>
|
||||
<Settings size={22} />
|
||||
<Cog size={22} />
|
||||
</IconButton>
|
||||
</>
|
||||
) }
|
||||
|
@ -55,7 +55,7 @@ function VoiceActions({ channel }: Pick<ChannelHeaderProps, 'channel'>) {
|
|||
if (voice.roomId === channel._id) {
|
||||
return (
|
||||
<IconButton onClick={disconnect}>
|
||||
<PhoneOff size={22} />
|
||||
<PhoneOutgoing size={22} />
|
||||
</IconButton>
|
||||
)
|
||||
} else {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Text } from "preact-i18n";
|
||||
import styled from "styled-components";
|
||||
import { useContext } from "preact/hooks";
|
||||
import { BarChart } from "@styled-icons/bootstrap";
|
||||
import { BarChart } from "@styled-icons/boxicons-regular";
|
||||
import Button from "../../../components/ui/Button";
|
||||
import UserIcon from "../../../components/common/user/UserIcon";
|
||||
import { useForceUpdate, useSelf, useUsers } from "../../../context/revoltjs/hooks";
|
||||
|
@ -93,7 +93,7 @@ export default function VoiceHeader({ id }: Props) {
|
|||
)}
|
||||
</div>
|
||||
<div className="status">
|
||||
<BarChart size={20} strokeWidth={2} />
|
||||
<BarChart size={20} />
|
||||
{ status === VoiceStatus.CONNECTED && <Text id="app.main.channel.voice.connected" /> }
|
||||
</div>
|
||||
<div className="actions">
|
||||
|
@ -145,7 +145,7 @@ export default function VoiceHeader({ id }: Props) {
|
|||
)}
|
||||
</div>
|
||||
<div className={styles.status}>
|
||||
<BarChart size={20} strokeWidth={2} />
|
||||
<BarChart size={20} />
|
||||
{ voice.status === VoiceStatus.CONNECTED && <Text id="app.main.channel.voice.connected" /> }
|
||||
</div>
|
||||
<div className={styles.actions}>
|
||||
|
|
|
@ -3,7 +3,7 @@ import { Link } from "react-router-dom";
|
|||
import styles from "./Friend.module.scss";
|
||||
import { useContext } from "preact/hooks";
|
||||
import { Children } from "../../types/Preact";
|
||||
import { X, Plus, Mail } from "@styled-icons/feather";
|
||||
import { X, Plus, Envelope } from "@styled-icons/boxicons-regular";
|
||||
import IconButton from "../../components/ui/IconButton";
|
||||
import { attachContextMenu } from "preact-context-menu";
|
||||
import { User, Users } from "revolt.js/dist/api/objects";
|
||||
|
@ -30,7 +30,7 @@ export function Friend({ user }: Props) {
|
|||
<IconButton type="circle"
|
||||
onClick={stopPropagation}>
|
||||
<Link to={'/open/' + user._id}>
|
||||
<Mail size={20} />
|
||||
<Envelope size={20} />
|
||||
</Link>
|
||||
</IconButton>
|
||||
);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import styles from "./Friend.module.scss";
|
||||
import { UserPlus } from "@styled-icons/feather";
|
||||
import { UserPlus } from "@styled-icons/boxicons-regular";
|
||||
|
||||
import { Friend } from "./Friend";
|
||||
import { Text } from "preact-i18n";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import styles from './Invite.module.scss';
|
||||
import Button from '../../components/ui/Button';
|
||||
import { ArrowLeft } from "@styled-icons/feather";
|
||||
import { LeftArrowAlt } from "@styled-icons/boxicons-regular";
|
||||
import Overline from '../../components/ui/Overline';
|
||||
import { Invites } from "revolt.js/dist/api/objects";
|
||||
import Preloader from '../../components/ui/Preloader';
|
||||
|
@ -44,7 +44,7 @@ export default function Invite() {
|
|||
return (
|
||||
<div className={styles.invite} style={{ backgroundImage: invite.server_banner ? `url('${client.generateFileURL(invite.server_banner)}')` : undefined }}>
|
||||
<div className={styles.leave}>
|
||||
<ArrowLeft size={32} onClick={() => history.push('/')} />
|
||||
<LeftArrowAlt size={32} onClick={() => history.push('/')} />
|
||||
</div>
|
||||
|
||||
{ !processing &&
|
||||
|
|
|
@ -5,7 +5,7 @@ import styles from "../Login.module.scss";
|
|||
import { useForm } from "react-hook-form";
|
||||
import { MailProvider } from "./MailProvider";
|
||||
import { useContext, useState } from "preact/hooks";
|
||||
import { CheckCircle, Mail } from "@styled-icons/feather";
|
||||
import { CheckCircle, Envelope } from "@styled-icons/boxicons-regular";
|
||||
import { takeError } from "../../../context/revoltjs/util";
|
||||
import { CaptchaBlock, CaptchaProps } from "./CaptchaBlock";
|
||||
import { AppContext } from "../../../context/revoltjs/RevoltClient";
|
||||
|
@ -109,7 +109,7 @@ export function Form({ page, callback }: Props) {
|
|||
<div className={styles.success}>
|
||||
{client.configuration?.features.email ? (
|
||||
<>
|
||||
<Mail size={72} />
|
||||
<Envelope size={72} />
|
||||
<h2>
|
||||
<Text id="login.check_mail" />
|
||||
</h2>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Text } from "preact-i18n";
|
||||
import { List } from "@styled-icons/feather";
|
||||
import { ListUl } from "@styled-icons/boxicons-regular";
|
||||
import Category from "../../components/ui/Category";
|
||||
import { GenericSettings } from "./GenericSettings";
|
||||
import { getChannelName } from "../../context/revoltjs/util";
|
||||
|
@ -30,7 +30,7 @@ export default function ChannelSettings() {
|
|||
{
|
||||
category: <Category variant="uniform" text={getChannelName(ctx.client, channel, true)} />,
|
||||
id: 'overview',
|
||||
icon: <List size={20} strokeWidth={2} />,
|
||||
icon: <ListUl size={20} />,
|
||||
title: <Text id="app.settings.channel_pages.overview.title" />
|
||||
}
|
||||
]}
|
||||
|
|
|
@ -6,7 +6,7 @@ import Header from '../../components/ui/Header';
|
|||
import Category from '../../components/ui/Category';
|
||||
import IconButton from "../../components/ui/IconButton";
|
||||
import LineDivider from "../../components/ui/LineDivider";
|
||||
import { ArrowLeft, X, XCircle } from "@styled-icons/feather";
|
||||
import { LeftArrowAlt, X, XCircle } from "@styled-icons/boxicons-regular";
|
||||
import { Switch, useHistory, useParams } from "react-router-dom";
|
||||
import { isTouchscreenDevice } from "../../lib/isTouchscreenDevice";
|
||||
import ButtonItem from "../../components/navigation/items/ButtonItem";
|
||||
|
@ -65,7 +65,7 @@ export function GenericSettings({ pages, switchPage, category, custom, children,
|
|||
) : (
|
||||
<>
|
||||
<IconButton onClick={() => switchPage()}>
|
||||
<ArrowLeft size={24} />
|
||||
<LeftArrowAlt size={24} />
|
||||
</IconButton>
|
||||
<Text
|
||||
id={`app.settings.${category}.${page}.title`}
|
||||
|
|
|
@ -3,7 +3,8 @@ import Category from "../../components/ui/Category";
|
|||
import { GenericSettings } from "./GenericSettings";
|
||||
import { useServer } from "../../context/revoltjs/hooks";
|
||||
import { Route, useHistory, useParams } from "react-router-dom";
|
||||
import { List, Share, Users, XSquare } from "@styled-icons/feather";
|
||||
import { ListUl, Share, Group } from "@styled-icons/boxicons-regular";
|
||||
import { XSquare } from "@styled-icons/boxicons-solid";
|
||||
import RequiresOnline from "../../context/revoltjs/RequiresOnline";
|
||||
|
||||
import { Overview } from "./server/Overview";
|
||||
|
@ -31,22 +32,22 @@ export default function ServerSettings() {
|
|||
{
|
||||
category: <Category variant="uniform" text={server.name} />,
|
||||
id: 'overview',
|
||||
icon: <List size={20} strokeWidth={2} />,
|
||||
icon: <ListUl size={20} />,
|
||||
title: <Text id="app.settings.channel_pages.overview.title" />
|
||||
},
|
||||
{
|
||||
id: 'members',
|
||||
icon: <Users size={20} strokeWidth={2} />,
|
||||
icon: <Group size={20} />,
|
||||
title: "Members"
|
||||
},
|
||||
{
|
||||
id: 'invites',
|
||||
icon: <Share size={20} strokeWidth={2} />,
|
||||
icon: <Share size={20} />,
|
||||
title: "Invites"
|
||||
},
|
||||
{
|
||||
id: 'bans',
|
||||
icon: <XSquare size={20} strokeWidth={2} />,
|
||||
icon: <XSquare size={20} />,
|
||||
title: "Bans"
|
||||
}
|
||||
]}
|
||||
|
|
|
@ -10,16 +10,16 @@ import {
|
|||
Bell,
|
||||
Box,
|
||||
Coffee,
|
||||
Gitlab,
|
||||
Globe,
|
||||
Image,
|
||||
LogOut,
|
||||
RefreshCw,
|
||||
Sync as SyncIcon,
|
||||
Shield,
|
||||
ToggleRight,
|
||||
User
|
||||
} from "@styled-icons/feather";
|
||||
import { Megaphone } from "@styled-icons/bootstrap";
|
||||
} from "@styled-icons/boxicons-regular";
|
||||
import { Megaphone } from "@styled-icons/boxicons-solid";
|
||||
import { Gitlab } from "@styled-icons/boxicons-logos";
|
||||
import { GIT_BRANCH, GIT_REVISION, REPO_URL } from "../../revision";
|
||||
import LineDivider from "../../components/ui/LineDivider";
|
||||
import RequiresOnline from "../../context/revoltjs/RequiresOnline";
|
||||
|
@ -54,49 +54,49 @@ export default function Settings() {
|
|||
{
|
||||
category: <Text id="app.settings.categories.user_settings" />,
|
||||
id: 'account',
|
||||
icon: <User size={20} strokeWidth={2} />,
|
||||
icon: <User size={20} />,
|
||||
title: <Text id="app.settings.pages.account.title" />
|
||||
},
|
||||
{
|
||||
id: 'profile',
|
||||
icon: <Image size={20} strokeWidth={2} />,
|
||||
icon: <Image size={20} />,
|
||||
title: <Text id="app.settings.pages.profile.title" />
|
||||
},
|
||||
{
|
||||
id: 'sessions',
|
||||
icon: <Shield size={20} strokeWidth={2} />,
|
||||
icon: <Shield size={20} />,
|
||||
title: <Text id="app.settings.pages.sessions.title" />
|
||||
},
|
||||
{
|
||||
category: <Text id="app.settings.categories.client_settings" />,
|
||||
id: 'appearance',
|
||||
icon: <Box size={20} strokeWidth={2} />,
|
||||
icon: <Box size={20} />,
|
||||
title: <Text id="app.settings.pages.appearance.title" />
|
||||
},
|
||||
{
|
||||
id: 'notifications',
|
||||
icon: <Bell size={20} strokeWidth={2} />,
|
||||
icon: <Bell size={20} />,
|
||||
title: <Text id="app.settings.pages.notifications.title" />
|
||||
},
|
||||
{
|
||||
id: 'language',
|
||||
icon: <Globe size={20} strokeWidth={2} />,
|
||||
icon: <Globe size={20} />,
|
||||
title: <Text id="app.settings.pages.language.title" />
|
||||
},
|
||||
{
|
||||
id: 'sync',
|
||||
icon: <RefreshCw size={20} strokeWidth={2} />,
|
||||
icon: <SyncIcon size={20} />,
|
||||
title: <Text id="app.settings.pages.sync.title" />
|
||||
},
|
||||
{
|
||||
divider: true,
|
||||
id: 'experiments',
|
||||
icon: <ToggleRight size={20} strokeWidth={2} />,
|
||||
icon: <ToggleRight size={20} />,
|
||||
title: <Text id="app.settings.pages.experiments.title" />
|
||||
},
|
||||
{
|
||||
id: 'feedback',
|
||||
icon: <Megaphone size={20} strokeWidth={0.3} />,
|
||||
icon: <Megaphone size={20} />,
|
||||
title: <Text id="app.settings.pages.feedback.title" />
|
||||
}
|
||||
]}
|
||||
|
@ -122,13 +122,13 @@ export default function Settings() {
|
|||
target="_blank"
|
||||
>
|
||||
<ButtonItem compact>
|
||||
<Gitlab size={20} strokeWidth={2} />
|
||||
<Gitlab size={20} />
|
||||
<Text id="app.settings.pages.source_code" />
|
||||
</ButtonItem>
|
||||
</a>,
|
||||
<a href="https://ko-fi.com/insertish" target="_blank">
|
||||
<ButtonItem className={styles.donate} compact>
|
||||
<Coffee size={20} strokeWidth={2} />
|
||||
<Coffee size={20} />
|
||||
<Text id="app.settings.pages.donate.title" />
|
||||
</ButtonItem>
|
||||
</a>,
|
||||
|
@ -138,7 +138,7 @@ export default function Settings() {
|
|||
className={styles.logOut}
|
||||
compact
|
||||
>
|
||||
<LogOut size={20} strokeWidth={2} />
|
||||
<LogOut size={20} />
|
||||
<Text id="app.settings.pages.logOut" />
|
||||
</ButtonItem>,
|
||||
<div className={styles.version}>
|
||||
|
|
|
@ -5,7 +5,7 @@ import Button from "../../../components/ui/Button";
|
|||
import { Users } from "revolt.js/dist/api/objects";
|
||||
import { Link, useHistory } from "react-router-dom";
|
||||
import Overline from "../../../components/ui/Overline";
|
||||
import { AtSign, Key, Mail } from "@styled-icons/feather";
|
||||
import { At, Key, Envelope } from "@styled-icons/boxicons-regular";
|
||||
import { useContext, useEffect, useState } from "preact/hooks";
|
||||
import UserIcon from "../../../components/common/user/UserIcon";
|
||||
import { useForceUpdate, useSelf } from "../../../context/revoltjs/hooks";
|
||||
|
@ -54,8 +54,8 @@ export function Account() {
|
|||
</div>
|
||||
<div className={styles.details}>
|
||||
{[
|
||||
["username", user.username, <AtSign size={24} />],
|
||||
["email", email, <Mail size={24} />],
|
||||
["username", user.username, <At size={24} />],
|
||||
["email", email, <Envelope size={24} />],
|
||||
["password", "*****", <Key size={24} />]
|
||||
].map(([field, value, icon]) => (
|
||||
<div>
|
||||
|
|
|
@ -9,7 +9,7 @@ import Preloader from "../../../components/ui/Preloader";
|
|||
import { useContext, useEffect, useState } from "preact/hooks";
|
||||
import { AppContext } from "../../../context/revoltjs/RevoltClient";
|
||||
|
||||
import { HelpCircle } from "@styled-icons/feather";
|
||||
import { HelpCircle } from "@styled-icons/boxicons-regular";
|
||||
import {
|
||||
Android,
|
||||
Firefoxbrowser,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import styles from './Panes.module.scss';
|
||||
import { XCircle } from "@styled-icons/feather";
|
||||
import { XCircle } from "@styled-icons/boxicons-regular";
|
||||
import { useEffect, useState } from "preact/hooks";
|
||||
import Preloader from "../../../components/ui/Preloader";
|
||||
import IconButton from "../../../components/ui/IconButton";
|
||||
|
|
Loading…
Reference in a new issue