Remove now unused splitTopicUrl function
parent
83bb9951b0
commit
3f96fad7ce
|
@ -23,28 +23,10 @@ export const shortUrl = (url) => url.replaceAll(/https?:\/\//g, "");
|
||||||
export const expandUrl = (url) => [`https://${url}`, `http://${url}`];
|
export const expandUrl = (url) => [`https://${url}`, `http://${url}`];
|
||||||
export const expandSecureUrl = (url) => `https://${url}`;
|
export const expandSecureUrl = (url) => `https://${url}`;
|
||||||
|
|
||||||
export const splitTopicUrl = (url) => {
|
|
||||||
if (!validTopicUrl(url)) {
|
|
||||||
throw new Error("Invalid topic URL");
|
|
||||||
}
|
|
||||||
const parts = url.split("/");
|
|
||||||
if (parts.length < 2) {
|
|
||||||
throw new Error("Invalid topic URL");
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
baseUrl: parts.slice(0, parts.length-1).join("/"),
|
|
||||||
topic: parts[parts.length-1]
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export const validUrl = (url) => {
|
export const validUrl = (url) => {
|
||||||
return url.match(/^https?:\/\//);
|
return url.match(/^https?:\/\//);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const validTopicUrl = (url) => {
|
|
||||||
return url.match(/^https?:\/\/.+\/.*[^/]/); // At least one other slash
|
|
||||||
}
|
|
||||||
|
|
||||||
export const validTopic = (topic) => {
|
export const validTopic = (topic) => {
|
||||||
if (disallowedTopic(topic)) {
|
if (disallowedTopic(topic)) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -18,7 +18,7 @@ import IconButton from "@mui/material/IconButton";
|
||||||
import InsertEmoticonIcon from '@mui/icons-material/InsertEmoticon';
|
import InsertEmoticonIcon from '@mui/icons-material/InsertEmoticon';
|
||||||
import {Close} from "@mui/icons-material";
|
import {Close} from "@mui/icons-material";
|
||||||
import MenuItem from "@mui/material/MenuItem";
|
import MenuItem from "@mui/material/MenuItem";
|
||||||
import {basicAuth, formatBytes, topicShortUrl, topicUrl, validTopicUrl} from "../app/utils";
|
import {basicAuth, formatBytes, topicShortUrl, validTopic, validUrl} from "../app/utils";
|
||||||
import Box from "@mui/material/Box";
|
import Box from "@mui/material/Box";
|
||||||
import AttachmentIcon from "./AttachmentIcon";
|
import AttachmentIcon from "./AttachmentIcon";
|
||||||
import DialogFooter from "./DialogFooter";
|
import DialogFooter from "./DialogFooter";
|
||||||
|
@ -80,7 +80,7 @@ const SendDialog = (props) => {
|
||||||
}, [props.baseUrl, props.topic]);
|
}, [props.baseUrl, props.topic]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const valid = validTopicUrl(topicUrl(baseUrl, topic)) && !attachFileError;
|
const valid = validUrl(baseUrl) && validTopic(topic) && !attachFileError;
|
||||||
setSendButtonEnabled(valid);
|
setSendButtonEnabled(valid);
|
||||||
}, [baseUrl, topic, attachFileError]);
|
}, [baseUrl, topic, attachFileError]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue