Eu estava ficando cansado da mesma nova página de guia nova. Eu queria ter um painel para tudo o que pego no meu dia de trabalho típico, então eu o construí.
O startertab está aqui para revolucionar a maneira como você começa o dia na internet. Com um WebApp completamente personalizável para substituir sua nova página inicial da guia, você pode personalizar sua experiência on -line como nunca antes.
Você pode instalar a extensão do Chrome aqui, ou a extensão do Firefox aqui e tornar o startertab o site que se abre em todas as suas novas guias.
O armazenamento local está sendo usado para armazenar todas as suas personalizações, o que significa que você possui seus dados! Todas as configurações, fichas e temas ficam no seu próprio navegador. Alguns podem chamar de preguiça de que eu não quero manter um banco de dados, você também pode vê -lo como eu ajudando a impedir que seus dados estivessem em outro serviço em nuvem.
Escrito em NextJs com Charkaui. O front -end e as funções estão hospedados no Vercel, o banco de dados no neon.
git clone https://github.com/allister-grange/startertab.git
cd startertab
yarn install
Copie o arquivo .env.local.example neste diretório para .env.local (que será ignorado pelo git):
cp .env.local.example .env.local
Adicione detalhes para todos os provedores que você deseja usar:
STRAVA_CLIENT_ID=<YOUR_SECRET_HERE>
STRAVA_SECRET=<YOUR_SECRET_HERE>
WEATHERAPI_TOKEN=<YOUR_SECRET_HERE>
SPOTIFY_CLIENT_ID=<YOUR_SECRET_HERE>
SPOTIFY_CLIENT_SECRET=<YOUR_SECRET_HERE>
FINNHUB_SECRET=<YOUR_SECRET_HERE>
TWITTER_CLIENT_ID=<YOUR_SECRET_HERE>
TWITTER_CLIENT_SECRET=<YOUR_SECRET_HERE>
TWITTER_CODE_CHALLENGE_KEY=<YOUR_SECRET_HERE>
TOKEN_ENCRYPT_KEY=<YOUR_SECRET_HERE>
OUTLOOK_CLIENT_ID=<YOUR_SECRET_HERE>
OUTLOOK_CLIENT_SECRET=<YOUR_SECRET_HERE>
GOOGLE_CLIENT_ID=<YOUR_SECRET_HERE>
GOOGLE_CLIENT_SECRET=<YOUR_SECRET_HERE>
DATABASE_URL=<YOUR_SECRET_HERE>
DATABASE_URL_UNPOOLED=<YOUR_SECRET_HERE>
ANALYTICS_ENABLED=<true or false>
Para executar seu startertab localmente, use:
yarn dev
Para executá -lo no modo de produção, use:
yarn build && yarn start
src/components/tiles . Certifique -se de aceitar um suporte 'tileid', isso permite alterar a cor do texto com base nas configurações alteradas na barra lateral. type PageProps = {
tileId : number ;
} ;
export const YourNewTile : React . FC < PageProps > = ( { tileId } ) => {
const color = `var(--text-color- ${ tileId } )` ;
return ( ) ;
}src/types/settings.ts .tileSize em src/components/sidebar/OptionsForTileTypeSelect.tsxtileType em src/components/TileContainer.tsxSe você precisa de armazenamento persistente
TileSettings no src/types/settings.tssrc/recoil/UserSettingsSelectors.tsxExemplo de seletor:
export const imageFilePathSelector = createTilePropertySelector < string > (
"imageFilePath" ,
( theme , newValue ) => {
theme . imageFilePath = newValue ;
}
) ;Usando esse seletor em um ladrilho:
const [ fileValue , setFileValue ] = useRecoilState (
imageFilePathSelector ( tileId )
) as [ string | undefined , SetterOrUpdater < string | undefined > ] ;Criando um item de menu da barra lateral para opções
OptionType em src/types/settings.tssrc/helpers/sideBarOptions.tssrc/components/sidebar/SettingOptionContainer.tsx para incluir o novo tipo de opção