diff --git a/package-lock.json b/package-lock.json index 62614ca..900ad7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.50.1", "@sveltejs/vite-plugin-svelte": "^6.2.4", "@tailwindcss/postcss": "^4.1.18", @@ -1133,6 +1134,16 @@ "@sveltejs/kit": "^2.0.0" } }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz", + "integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, "node_modules/@sveltejs/kit": { "version": "2.50.1", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.50.1.tgz", diff --git a/package.json b/package.json index f5516ed..b56e857 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^7.0.0", + "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.50.1", "@sveltejs/vite-plugin-svelte": "^6.2.4", "@tailwindcss/postcss": "^4.1.18", diff --git a/src/routes/+layout.js b/src/routes/+layout.js new file mode 100644 index 0000000..8383188 --- /dev/null +++ b/src/routes/+layout.js @@ -0,0 +1,2 @@ +export const prerender = true; +export const ssr = true; \ No newline at end of file diff --git a/src/routes/politicas-e-termos/+page.svelte b/src/routes/politicas-e-termos/+page.svelte index 6397f1b..e3a7514 100644 --- a/src/routes/politicas-e-termos/+page.svelte +++ b/src/routes/politicas-e-termos/+page.svelte @@ -2,17 +2,18 @@ import { onMount } from 'svelte'; import { page } from '$app/stores'; import { goto } from '$app/navigation'; + import { browser } from '$app/environment'; import Header from '$lib/components/Header.svelte'; import Footer from '$lib/components/Footer.svelte'; const policies = { termos: { title: 'Políticas e Termos', - file: 'termos.md' + file: 'politicas/termos.md' }, privacidade: { title: 'Política de Privacidade', - file: 'privacidade.md' + file: 'politicas/privacidade.md' }, }; @@ -57,37 +58,47 @@ } async function loadMarkdownContent(policyKey) { - try { - loading = true; - error = null; - - const policy = policies[policyKey]; - if (!policy) { - throw new Error('Política não encontrada'); - } - - const response = await fetch(`/politicas/${policy.file}`); - if (!response.ok) { - throw new Error(`Erro ao carregar ${policy.file}: ${response.status}`); - } - - const markdownText = await response.text(); - content = parseMarkdown(markdownText); - } catch (err) { - error = err.message; - console.error('Erro ao carregar markdown:', err); - - content = ` -

${policies[policyKey]?.title || 'Documento'}

-

Conteúdo em atualização...

-

Não foi possível carregar o conteúdo deste documento no momento.

-

Por favor, tente novamente mais tarde ou entre em contato conosco através do email: - suporte@basspago.com

- `; - } finally { - loading = false; + try { + loading = true; + error = null; + + const policy = policies[policyKey]; + if (!policy) { + throw new Error('Política não encontrada'); } + + // ✅ Só fazer fetch no browser + if (!browser) { + content = ` +

${policy.title}

+

Carregando conteúdo...

+ `; + loading = false; + return; + } + + const response = await fetch(`/${policy.file}`); + + if (!response.ok) { + throw new Error(`Erro ao carregar ${policy.file}: ${response.status}`); + } + + const markdownText = await response.text(); + content = parseMarkdown(markdownText); + } catch (err) { + error = err.message; + console.error('Erro ao carregar markdown:', err); + + content = ` +

${policies[policyKey]?.title || 'Documento'}

+

Conteúdo em atualização...

+

Para dúvidas, entre em contato: + suporte@basspago.com.br

+ `; + } finally { + loading = false; } +} function navigateToPolicy(policyKey) { if (currentPolicy !== policyKey) { diff --git a/svelte.config.js b/svelte.config.js index 10c4eeb..97e881a 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,13 +1,21 @@ -import adapter from '@sveltejs/adapter-auto'; +import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { - // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. - // If your environment is not supported, or you settled on a specific environment, switch out the adapter. - // See https://svelte.dev/docs/kit/adapters for more information about adapters. - adapter: adapter() + adapter: adapter({ + pages: 'build', + assets: 'build', + fallback: 'index.html', + precompress: false, + strict: false + }), + prerender: { + handleHttpError: 'warn', + handleMissingId: 'warn', + entries: ['*'] + } } }; -export default config; +export default config; \ No newline at end of file