fixed request handling to fix add tag issue

This commit is contained in:
Anton Tranelis 2024-07-29 12:43:03 +02:00
parent 5781c8c8d4
commit 7e426348df

View File

@ -4,6 +4,8 @@ import { hashTagRegex } from '../../Utils/HashTagRegex';
import { randomColor } from '../../Utils/RandomColor'; import { randomColor } from '../../Utils/RandomColor';
import { toast } from 'react-toastify'; import { toast } from 'react-toastify';
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
export const submitNewItem = async (evt: any, type: string, item, user, setLoading, tags, addTag, addItem, linkItem, resetFilterTags, layers, addItemPopupType, setAddItemPopupType) => { export const submitNewItem = async (evt: any, type: string, item, user, setLoading, tags, addTag, addItem, linkItem, resetFilterTags, layers, addItemPopupType, setAddItemPopupType) => {
evt.preventDefault(); evt.preventDefault();
const formItem: Item = {} as Item; const formItem: Item = {} as Item;
@ -142,24 +144,26 @@ export const onUpdateItem = async (state, item, tags, addTag, setLoading, naviga
let offers_state: Array<any> = []; let offers_state: Array<any> = [];
let needs_state: Array<any> = []; let needs_state: Array<any> = [];
await state.offers.map(o => { state.offers.map(o => {
offers_state.push({ items_id: item?.id, tags_id: o.id }) offers_state.push({ items_id: item?.id, tags_id: o.id })
}); });
await state.needs.map(n => { state.needs.map(n => {
needs_state.push({ items_id: item?.id, tags_id: n.id }) needs_state.push({ items_id: item?.id, tags_id: n.id })
}); });
changedItem = { ...changedItem, offers: offers_state, needs: needs_state }; changedItem = { ...changedItem, offers: offers_state, needs: needs_state };
setLoading(true);
state.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag => { await state.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag => {
if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) { if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {
addTag({ id: crypto.randomUUID(), name: encodeTag(tag.slice(1).toLocaleLowerCase()), color: randomColor() }) addTag({ id: crypto.randomUUID(), name: encodeTag(tag.slice(1).toLocaleLowerCase()), color: randomColor() })
} }
}); });
setLoading(true);
await sleep(200);
if (!item.new) { if (!item.new) {
item?.layer?.api?.updateItem && toast.promise( item?.layer?.api?.updateItem && toast.promise(
@ -181,6 +185,7 @@ export const onUpdateItem = async (state, item, tags, addTag, setLoading, naviga
} }
else { else {
item.new = false;
item.layer?.api?.createItem && toast.promise( item.layer?.api?.createItem && toast.promise(
item.layer?.api?.createItem(changedItem), item.layer?.api?.createItem(changedItem),
{ {