Merge pull request #294 from RigidStudios/fixroles

This commit is contained in:
Paul Makles 2021-09-24 15:39:04 +01:00 committed by GitHub
commit 66289911ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 25 deletions

View file

@ -40,6 +40,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" />
<br />
<img src={wideSVG} loading="eager" /> <img src={wideSVG} loading="eager" />
</h1> </h1>
</div> </div>

View file

@ -30,13 +30,7 @@ export default observer(({ channel }: Props) => {
<StartBase> <StartBase>
<h1>{getChannelName(channel, true)}</h1> <h1>{getChannelName(channel, true)}</h1>
<h4> <h4>
<Text <Text id="app.main.channel.start.group" />
id={
channel.channel_type === "SavedMessages"
? "app.main.channel.start.saved"
: "app.main.channel.start.group"
}
/>
</h4> </h4>
</StartBase> </StartBase>
); );

View file

@ -6,9 +6,16 @@ import { Server } from "revolt.js/dist/maps/Servers";
import styles from "./Panes.module.scss"; import styles from "./Panes.module.scss";
import { Text } from "preact-i18n"; import { Text } from "preact-i18n";
import {useCallback, useContext, useEffect, useMemo, useState} from "preact/hooks"; import {
useCallback,
useContext,
useEffect,
useMemo,
useState,
} from "preact/hooks";
import { useIntermediate } from "../../../context/intermediate/Intermediate"; import { useIntermediate } from "../../../context/intermediate/Intermediate";
import { AppContext } from "../../../context/revoltjs/RevoltClient";
import Button from "../../../components/ui/Button"; import Button from "../../../components/ui/Button";
import Checkbox from "../../../components/ui/Checkbox"; import Checkbox from "../../../components/ui/Checkbox";
@ -17,7 +24,6 @@ import InputBox from "../../../components/ui/InputBox";
import Overline from "../../../components/ui/Overline"; import Overline from "../../../components/ui/Overline";
import ButtonItem from "../../../components/navigation/items/ButtonItem"; import ButtonItem from "../../../components/navigation/items/ButtonItem";
import {AppContext} from "../../../context/revoltjs/RevoltClient";
interface Props { interface Props {
server: Server; server: Server;
@ -30,7 +36,7 @@ export const Roles = observer(({ server }: Props) => {
const client = useContext(AppContext); const client = useContext(AppContext);
const [role, setRole] = useState("default"); const [role, setRole] = useState("default");
const { openScreen } = useIntermediate(); const { openScreen } = useIntermediate();
const roles = useMemo(() => server.roles ?? {}, [server]); const roles = server.roles || {};
if (role !== "default" && typeof roles[role] === "undefined") { if (role !== "default" && typeof roles[role] === "undefined") {
useEffect(() => setRole("default"), [role]); useEffect(() => setRole("default"), [role]);
@ -123,26 +129,25 @@ export const Roles = observer(({ server }: Props) => {
} }
/> />
</div> </div>
{["default", ...Object.keys(roles)].map((id) => { {["default", ...Object.keys(roles)].map((id) =>
if (id === "default") { id === "default" ? (
return ( <ButtonItem
<ButtonItem active={role === "default"}
active={role === "default"} onClick={() => setRole("default")}>
onClick={() => setRole("default")}> <Text id="app.settings.permissions.default_role" />
<Text id="app.settings.permissions.default_role" /> </ButtonItem>
</ButtonItem> ) : (
);
}
return (
<ButtonItem <ButtonItem
key={id} key={id}
active={role === id} active={role === id}
onClick={() => setRole(id)} onClick={() => setRole(id)}
style={{ color: roles[id].colour }}> style={{
color: roles[id].colour,
}}>
{roles[id].name} {roles[id].name}
</ButtonItem> </ButtonItem>
); ),
})} )}
</div> </div>
<div className={styles.permissions}> <div className={styles.permissions}>
<div className={styles.title}> <div className={styles.title}>
@ -238,7 +243,10 @@ export const Roles = observer(({ server }: Props) => {
onChange={() => onChange={() =>
setPerm([perm[0], perm[1] ^ value]) setPerm([perm[0], perm[1] ^ value])
} }
disabled={key === "View" || (!(clientPermissions & value))} disabled={
key === "View" ||
!(clientPermissions & value)
}
description={ description={
<Text id={`permissions.channel.${key}.d`} /> <Text id={`permissions.channel.${key}.d`} />
}> }>