Size: a a a

Svelte [svelt] - All about Svelte JavaScript framework.

2021 November 26

ER

Eric Rovell in Svelte [svelt] - All about Svelte JavaScript framework.
Если используете кит, то ничего настраивать не надо. Можно испортировать файл стилей с классами в скрипт. Единственное, обязательно нужен постфикс в имени, name.module.css
источник

ER

Eric Rovell in Svelte [svelt] - All about Svelte JavaScript framework.
источник

RZ

Roman Zasinets in Svelte [svelt] - All about Svelte JavaScript framework.
Блин, камрады. Я уже думал, что познал цзэн. А кит утверждает, что нет.
Опишу задачу и предположительно работающее решение:
При успешном логине сервер просто возвращает 200 статус и сетит http-only куку. Наличие куки в данный конкретный момент является единственным индикатором, что пользователь залогинен. После релоада страницы мне нужно узнать, есть кука или нет. Для этого я (пользуясь примером из svelte-realworld) использую хук handle. В нем проверяется наличие куки в реквесте
const cookies = cookie.parse(request.headers.cookie || '');
 const jwt = cookies.jwt

И если она присутствует, выставляем значение простого writable стора в true  (в целях тестирования я даже наличие куки не проверяю, просто сечу в true)
export const isAuthed = writable(false);

import { isAuthed } from '$lib/stores/auth-store';

export const handle = async ({ request, resolve }) => {
 isAuthed.set(true);
 return await resolve(request);
};

Однако на лэйауте значени стора остается false
<h1>{$isAuthed}</h1> //false
Чего я тут не учитываю? Может в handle и на страницах разные сторы?
источник

ВШ

Вениамин Шитиков... in Svelte [svelt] - All about Svelte JavaScript framework.
Спасибо попробую.
Изначально использовал роллап.
Но там проблемы)
источник

S

S in Svelte [svelt] - All about Svelte JavaScript framework.
Я использовал session, туда записывал isAuth в getSession хуке
источник

RZ

Roman Zasinets in Svelte [svelt] - All about Svelte JavaScript framework.
Сессия - вариант 100% рабочий. У меня он и был (опять же честно спертое из svelte-realworld). А сейчас одновременно и академический интерес, с целью разобраться, и тупо свой стор ближе к телу)
источник

S

S in Svelte [svelt] - All about Svelte JavaScript framework.
я так же побуксовал и забил)
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
vite использует роллап для прода, так что проблемы скорее всего останутся, особенно если это проблемы циклической зависимости аксиоса)
источник

RZ

Roman Zasinets in Svelte [svelt] - All about Svelte JavaScript framework.
Что характерное, первичное значение отлично считывается внутри handle и изменяется, но страницы видят как будто другой инстанс этого стора с дефолтным значением. Такое себе..
источник

ER

Eric Rovell in Svelte [svelt] - All about Svelte JavaScript framework.
Если используете чистый свелт, то svelte-preprocessor, если не ошибаюсь, есть опция с модулями
источник

RZ

Roman Zasinets in Svelte [svelt] - All about Svelte JavaScript framework.
Ладно, тогда другой логический вопрос: могу я как-нибудь тайпскрипту помочь определить, какие поля могут быть в сессии? Надеялся, что получится в лоб: добавил в src/session.d.ts. А там простой интерфейс:
interface Session{
 isAuthed: boolean;
}

Но не прокатило)
источник

A

Alexander in Svelte [svelt] - All about Svelte JavaScript framework.
источник

A

Alexander in Svelte [svelt] - All about Svelte JavaScript framework.
Работает как свой стор. А если нужно в лоад тип сесии то уже через дженерик
источник

A

Alexander in Svelte [svelt] - All about Svelte JavaScript framework.
export const load: Load<{ session: Session }> =
источник

RZ

Roman Zasinets in Svelte [svelt] - All about Svelte JavaScript framework.
Элегантно, спасибо большое!
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
мы же ни одной нервы не потратили)

дали выход из ситуации с классами - использовать модули, а свелт стили не использовать)

да и не потратим потому что с модулями нет никаких проблем вообще, а функционал тот же
источник

DZ

Dmitry Zimin in Svelte [svelt] - All about Svelte JavaScript framework.
Приветики.
как я могу прокинуть событие из компонента который внутри слота? (это __layout шаблон)

<main style="min-height: 100vh; padding: 0 16px" on:message={handleMessage}>
<slot />
</main>к

dispatch('message', { text: 'Hello!' }); - 0 эффекта
источник

A

Arushwl in Svelte [svelt] - All about Svelte JavaScript framework.
источник

A

Arushwl in Svelte [svelt] - All about Svelte JavaScript framework.
А что за событие такое - message ?
источник

DZ

Dmitry Zimin in Svelte [svelt] - All about Svelte JavaScript framework.
обычное кастомное из какого то примера взял
источник