Size: a a a

Next.js — русскоговорящее сообщество

2020 August 01

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Типо был App dark - корневой элемент, и в определенной пейдже он должен быть App white
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
каждая страница имеет право сменить цветовую схему всего приложения (а конкретно просто у контейнера поменять classname)
ты как-то неправильно делаешь
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
ты как-то неправильно делаешь
возможно, согласен, но это костыли тянутся очень долго в проекте, нужно как то с этим что то сделать
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
я бы какой декоратор навесил на пейджу, но нельзя
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
мне нужны метаданные со страницы, которую некст выбирает на определенный роут
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
сейчас кроме как парсить URL никаких вариантов нет
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
сделай себе контекст или в сторе редьюсер, в котором у тебя будет структура

{
 [page]: theme
}

из любого места приложения будет доступно
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
в app провайдером обернешь или типо того
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
сделай себе контекст или в сторе редьюсер, в котором у тебя будет структура

{
 [page]: theme
}

из любого места приложения будет доступно
у меня есть контекст

AppContext { theme: Theme } и его провайдер возвращает return <div className=App ${this.state.theme} />, есть метод changeTheme который доступен из пейджей
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
и получается

<AppContextProvider>
   <Component />
</AppContextProvider
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
сделай себе контекст или в сторе редьюсер, в котором у тебя будет структура

{
 [page]: theme
}

из любого места приложения будет доступно
А, подожди
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
А что здесь является [page]? Как это обернуть?
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
у меня есть контекст

AppContext { theme: Theme } и его провайдер возвращает return <div className=App ${this.state.theme} />, есть метод changeTheme который доступен из пейджей
ты меня запутал
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
У тебя стандартный кейс смены темы приложения? Типо Dark mode, light mode?
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
когда все приложение меняет цветовую схему
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
У тебя стандартный кейс смены темы приложения? Типо Dark mode, light mode?
Темы всего две, выставляются они как класс рутовому контейнеру (там глобальный scss, который в зависимости от этого класса все компоненты в приложении окрашивает)
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
🦜
когда все приложение меняет цветовую схему
Приложение меняет свою цветовую схему в зависимости от текущей страницы
источник

🦜

🦜 in Next.js — русскоговорящее сообщество
Ruslan Kopylov
Темы всего две, выставляются они как класс рутовому контейнеру (там глобальный scss, который в зависимости от этого класса все компоненты в приложении окрашивает)
чот криво
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Допустим в разделе "Личный кабинет" она черная, в разделе "Новости" - белая
источник

RK

Ruslan Kopylov in Next.js — русскоговорящее сообщество
Это решает именно страница
источник