Merge branch 'master' into feature/invite_code_https

This commit is contained in:
teamabron
2025-01-19 11:44:24 +03:30
committed by GitHub
7 changed files with 75 additions and 54 deletions

2
.env
View File

@@ -1,2 +0,0 @@
VITE_API_URL=https://peptide.chat/api
# VITE_API_URL=http://local.revolt.chat:8000

1
.gitignore vendored
View File

@@ -6,6 +6,7 @@ dist-ssr
*.local *.local
*.log *.log
/.idea /.idea
.env
.yarn/cache .yarn/cache
.yarn/install-state.gz .yarn/install-state.gz

View File

@@ -45,6 +45,7 @@ import AutoComplete, { useAutoComplete } from "../AutoComplete";
import { PermissionTooltip } from "../Tooltip"; import { PermissionTooltip } from "../Tooltip";
import FilePreview from "./bars/FilePreview"; import FilePreview from "./bars/FilePreview";
import ReplyBar from "./bars/ReplyBar"; import ReplyBar from "./bars/ReplyBar";
import { User } from "@styled-icons/boxicons-regular";
type Props = { type Props = {
channel: Channel; channel: Channel;
@@ -256,26 +257,27 @@ export default observer(({ channel }: Props) => {
</Base> </Base>
); );
} }
console.log(channel) //|| channel.channel_type != "DirectMessage"
if (channel.channel_type != "SavedMessages")
if (!channel.havePermission("SendMessage") && channel.channel_type == "TextChannel" || channel.recipient?.relationship == "Blocked" || channel.recipient?.relationship == "BlockedOther"){
if (!channel.havePermission("SendMessage")) { return (
return ( <Base>
<Base> <Blocked>
<Blocked> <Action>
<Action> <PermissionTooltip
<PermissionTooltip permission="SendMessages"
permission="SendMessages" placement="top">
placement="top"> <ShieldX size={22} />
<ShieldX size={22} /> </PermissionTooltip>
</PermissionTooltip> </Action>
</Action> <div className="text">
<div className="text"> <Text id="app.main.channel.misc.no_sending" />
<Text id="app.main.channel.misc.no_sending" /> </div>
</div> </Blocked>
</Blocked> </Base>
</Base> );
); }
}
// Push message content to draft. // Push message content to draft.
const setMessage = useCallback( const setMessage = useCallback(
(content?: string) => { (content?: string) => {
@@ -627,7 +629,7 @@ export default observer(({ channel }: Props) => {
)} )}
</FloatingLayer> </FloatingLayer>
<Base> <Base>
{channel.havePermission("UploadFiles") ? ( {/* {channel.havePermission("UploadFiles") ? ( */}
<FileAction> <FileAction>
<FileUploader <FileUploader
size={24} size={24}
@@ -664,9 +666,9 @@ export default observer(({ channel }: Props) => {
}} }}
/> />
</FileAction> </FileAction>
) : ( {/* ) : (
<ThisCodeWillBeReplacedAnywaysSoIMightAsWellJustDoItThisWay__Padding /> <ThisCodeWillBeReplacedAnywaysSoIMightAsWellJustDoItThisWay__Padding />
)} )} */}
<TextAreaAutoSize <TextAreaAutoSize
autoFocus autoFocus
hideBorder hideBorder

View File

@@ -6,17 +6,17 @@ import { Localizer, Text } from "preact-i18n";
import Tooltip from "../Tooltip"; import Tooltip from "../Tooltip";
enum Badges { enum Badges {
Developer = 1, // Developer Developer = 1,
Translator = 2, // First 100 Members Translator = 2,
Supporter = 4, // Supporter Supporter = 4,
ResponsibleDisclosure = 8, // Trusted Seller ResponsibleDisclosure = 8,
Founder = 16, // Founder Founder = 16,
PlatformModeration = 32, // Administrator PlatformModeration = 32,
ActiveSupporter = 64, ActiveSupporter = 64,
Paw = 128, // Clown Paw = 128,
EarlyAdopter = 256, // Top Contributor EarlyAdopter = 256,
ReservedRelevantJokeBadge1 = 512, // Karen ReservedRelevantJokeBadge1 = 512,
ReservedRelevantJokeBadge2 = 1024, // Gump ReservedRelevantJokeBadge2 = 1024,
} }
const BadgesBase = styled.div` const BadgesBase = styled.div`
@@ -39,60 +39,75 @@ export default function UserBadges({ badges, uid }: Props) {
return ( return (
<BadgesBase> <BadgesBase>
<Localizer> <Localizer>
{badges & Badges.Founder && ( {badges & Badges.Founder ? (
<Tooltip content="Founder"> <Tooltip content="Founder">
<img src="/assets/badges/founder.svg" /> <img src="/assets/badges/founder.svg" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.Developer && ( {badges & Badges.Developer ? (
<Tooltip content="Developer"> <Tooltip content="Developer">
<img src="/assets/badges/developer.png" /> <img src="/assets/badges/developer.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.Translator && ( {badges & Badges.Translator ? (
<Tooltip content="First 100 Members"> <Tooltip content="First 100 Members">
<img src="/assets/badges/first_100_members.svg" /> <img src="/assets/badges/first_100_members.svg" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.EarlyAdopter && ( {badges & Badges.EarlyAdopter ? (
<Tooltip content="Top Contributor"> <Tooltip content="Top Contributor">
<img src="/assets/badges/top-contributor.png" /> <img src="/assets/badges/top-contributor.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.PlatformModeration && ( {badges & Badges.PlatformModeration ? (
<Tooltip content="Administrator"> <Tooltip content="Administrator">
<img src="/assets/badges/administrator.png" /> <img src="/assets/badges/administrator.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.ResponsibleDisclosure && ( {badges & Badges.ResponsibleDisclosure ? (
<Tooltip content="Trusted Seller"> <Tooltip content="Trusted Seller">
<img src="/assets/badges/trusted-seller.png" /> <img src="/assets/badges/trusted-seller.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.Supporter && ( {badges & Badges.Supporter ? (
<Tooltip content="Supporter"> <Tooltip content="Supporter">
<img <img src="/assets/badges/supporter.png" />
src="/assets/badges/supporter.png"
style={{
cursor: "pointer",
}}
/>
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.ReservedRelevantJokeBadge1 && ( {badges & Badges.ReservedRelevantJokeBadge1 ? (
<Tooltip content="Karen"> <Tooltip content="Karen">
<img src="/assets/badges/karen.png" /> <img src="/assets/badges/karen.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.ReservedRelevantJokeBadge2 && ( {badges & Badges.ReservedRelevantJokeBadge2 ? (
<Tooltip content="Gump"> <Tooltip content="Gump">
<img src="/assets/badges/gump.png" /> <img src="/assets/badges/gump.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
{badges & Badges.Paw && ( {badges & Badges.Paw ? (
<Tooltip content="Clown"> <Tooltip content="Clown">
<img src="/assets/badges/clown.png" /> <img src="/assets/badges/clown.png" />
</Tooltip> </Tooltip>
) : (
<></>
)} )}
</Localizer> </Localizer>
</BadgesBase> </BadgesBase>

View File

@@ -37,6 +37,7 @@ export default function CreateInvite({
}: ModalProps<"create_invite">) { }: ModalProps<"create_invite">) {
const [processing, setProcessing] = useState(false); const [processing, setProcessing] = useState(false);
const [code, setCode] = useState("abcdef"); const [code, setCode] = useState("abcdef");
const [url, setUrl] = useState("abcdef");
// Generate an invite code // Generate an invite code
useEffect(() => { useEffect(() => {
@@ -44,7 +45,10 @@ export default function CreateInvite({
target target
.createInvite() .createInvite()
.then(({ _id }) => setCode(_id)) .then((res) => {
setUrl(res.url || "default_url");
setCode(res._id || "default_code");
})
.catch((err) => .catch((err) =>
modalController.push({ type: "error", error: takeError(err) }), modalController.push({ type: "error", error: takeError(err) }),
) )

View File

@@ -207,7 +207,8 @@ export const UserProfile = observer(
</Button> </Button>
</Link> </Link>
)} )}
{(user.relationship === "Friend" || user.bot) && ( {(user.relationship === "Friend" || user.relationship === "None" || user.relationship === "Outgoing" || user.relationship === "Incoming" || user.bot ) && (
<Localizer> <Localizer>
<Tooltip <Tooltip
content={ content={

View File

@@ -99,7 +99,7 @@ export const Channel = observer(
const client = useClient(); const client = useClient();
const state = useApplicationState(); const state = useApplicationState();
if (!client.channels.exists(id)) { if (!client.channels.exists(id) && server_id) {
if (server_id) { if (server_id) {
const server = client.servers.get(server_id); const server = client.servers.get(server_id);
if (server && server.channel_ids.length > 0) { if (server && server.channel_ids.length > 0) {
@@ -110,7 +110,7 @@ export const Channel = observer(
target_id = last_id; target_id = last_id;
} }
} }
return ( return (
<Redirect <Redirect
to={`/server/${server_id}/channel/${target_id}`} to={`/server/${server_id}/channel/${target_id}`}