mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2025-12-13 07:46:10 +00:00
37 lines
918 B
TypeScript
37 lines
918 B
TypeScript
import { useEffect, useState } from 'react';
|
|
import { useItems } from '../Map/hooks/useItems';
|
|
|
|
export const Sitemap = ({url}:{url:string}) => {
|
|
const [sitemap, setSitemap] = useState('');
|
|
|
|
const items = useItems();
|
|
|
|
useEffect(() => {
|
|
if (items.length) {
|
|
const generateSitemap = () => {
|
|
let sitemapXML = `<?xml version="1.0" encoding="UTF-8"?>\n`;
|
|
sitemapXML += `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n`;
|
|
|
|
items.forEach(item => {
|
|
sitemapXML += ` <url>\n`;
|
|
sitemapXML += ` <loc>${url}/${item.slug}</loc>\n`;
|
|
sitemapXML += ` </url>\n`;
|
|
});
|
|
|
|
sitemapXML += `</urlset>`;
|
|
return sitemapXML;
|
|
};
|
|
|
|
setSitemap(generateSitemap());
|
|
}
|
|
}, [items]);
|
|
|
|
return (
|
|
<div>
|
|
<h1>Sitemap</h1>
|
|
<textarea value={sitemap} readOnly rows={items.length + 4} cols={80} />
|
|
</div>
|
|
);
|
|
};
|
|
|