Consider this component:
const MicrositesTable = async () => {
const response = await fetch(URL + '/api/microsites', {
next: {
tags: ["microsites"],
},
});
const microsites = await response.json()
const data = await buildMicrositesTableData(microsites);
return (
<TableList
name={name}
headers={headers}
data={data}
actionButtons={actionButtons}
/>
);
};
export default MicrositesTable;
I use this NewMicrositeButton component to create a new microsite with an API call:
const NewMicrositeButton = () => {
const create = async () => {
'use server'
try {
const response = await fetch(URL + '/api/microsites', {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ data: newMicrosite })
})
const microsite = await response.json();
const micrositeId = microsite?.id;
if (!micrositeId) return;
revalidateTag('microsites');
} catch (error) {
console.error(error);
}
};
return (
<form action={create}>
<button
className="px-2 py-1 rounded-lg bg-gray-100"
>
<div className="flex items-center space-x-2">
<FaPlus />
<p className="font-bold">
{"New"}
</p>
</div>
</button>
</form>
);
};
export default NewMicrositeButton;
However I do not see the updated fetch for "microsites" unless I do a hard refresh on my browser