Files
linkwarden/src/modules/send.js
T
2022-06-24 11:26:58 +04:30

63 lines
1.2 KiB
JavaScript

import { API_HOST } from "../config";
import { nanoid } from "nanoid";
const addItem = async (
name,
link,
tag,
collection,
reFetch,
onExit,
SetLoader,
method,
id = nanoid(),
title = "",
date = new Date().toString()
) => {
function isValidHttpUrl(string) {
let url;
try {
url = new URL(string);
} catch (_) {
return false;
}
return url.protocol === "http:" || url.protocol === "https:";
}
if (isValidHttpUrl(link)) {
fetch(API_HOST + "/api", {
method: method,
body: JSON.stringify({
_id: id,
name: name,
title: title,
link: link,
tag: tag,
collection: collection,
date: date,
}),
headers: {
"Content-type": "application/json; charset=UTF-8",
},
})
.then((res) => res.text())
.then(() => reFetch())
.then(() => {
SetLoader(false);
});
onExit();
} else if (!isValidHttpUrl(link) && link !== "") {
SetLoader(false);
alert(
'Please make sure the link is valid.\n\n(i.e. starts with "http"/"https")'
);
} else {
SetLoader(false);
}
};
export default addItem;