mirror of
https://github.com/stoatchat/for-legacy-web.git
synced 2026-03-06 17:11:55 +00:00
Merge branch 'master' into feature/invite_code_https
This commit is contained in:
2
.env
2
.env
@@ -1,2 +0,0 @@
|
|||||||
VITE_API_URL=https://peptide.chat/api
|
|
||||||
# VITE_API_URL=http://local.revolt.chat:8000
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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) }),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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={
|
||||||
|
|||||||
@@ -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}`}
|
||||||
|
|||||||
Reference in New Issue
Block a user