Merge branch 'master' into feature/invite_code_https

pull/1073/head
teamabron 2025-01-19 11:44:24 +03:30 committed by GitHub
commit c4d17c7ac0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
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
*.log
/.idea
.env
.yarn/cache
.yarn/install-state.gz

View File

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

View File

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

View File

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

View File

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

View File

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