ฉันเบื่อหน้าแท็บใหม่เก่าเหมือนกัน ฉันต้องการมีแดชบอร์ดสำหรับทุกสิ่งที่ฉันไปถึงในวันทำงานทั่วไปของฉันดังนั้นฉันจึงสร้างมันขึ้นมา
StarterTab อยู่ที่นี่เพื่อปฏิวัติวิธีที่คุณเริ่มต้นวันใหม่บนอินเทอร์เน็ต ด้วย WebApp ที่ปรับแต่งได้อย่างสมบูรณ์เพื่อแทนที่หน้าแรกของแท็บใหม่ของคุณคุณสามารถปรับแต่งประสบการณ์ออนไลน์ของคุณอย่างที่ไม่เคยมีมาก่อน
คุณสามารถติดตั้งส่วนขยาย Chrome ได้ที่นี่หรือส่วนขยาย Firefox ที่นี่และทำให้ StarterTab เป็นเว็บไซต์ที่เปิดขึ้นบนแท็บใหม่ของคุณทุกครั้ง
พื้นที่จัดเก็บในท้องถิ่นกำลังใช้สำหรับการจัดเก็บการปรับแต่งทั้งหมดของคุณซึ่งหมายความว่าคุณเป็นเจ้าของข้อมูลของคุณ! การตั้งค่าโทเค็นและธีมทั้งหมดนั่งบนเบราว์เซอร์ของคุณเอง บางคนอาจเรียกว่าความเกียจคร้านที่ฉันไม่ต้องการรักษาฐานข้อมูลคุณสามารถเห็นมันในขณะที่ฉันช่วยป้องกันไม่ให้ข้อมูลของคุณอยู่ในบริการคลาวด์อื่น
เขียนใน nextjs กับ Charkaui ส่วนหน้าและฟังก์ชั่นโฮสต์บน Vercel ฐานข้อมูลบนนีออน
git clone https://github.com/allister-grange/startertab.git
cd startertab
yarn install
คัดลอกไฟล์ .env.local.example ในไดเรกทอรีนี้ไปยัง .env.local (ซึ่งจะถูกละเว้นโดย Git):
cp .env.local.example .env.local
เพิ่มรายละเอียดสำหรับผู้ให้บริการทั้งหมดที่คุณต้องการใช้:
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>
ในการเรียกใช้ StarterTab ของคุณในพื้นที่ให้ใช้:
yarn dev
หากต้องการเรียกใช้ในโหมดการผลิตให้ใช้:
yarn build && yarn start
src/components/tiles กระเบื้อง ตรวจสอบให้แน่ใจว่าได้ยอมรับเสา 'tileid' สิ่งนี้ช่วยให้คุณสามารถเปลี่ยนสีของข้อความตามการตั้งค่าที่เปลี่ยนไปในแถบด้านข้าง type PageProps = {
tileId : number ;
} ;
export const YourNewTile : React . FC < PageProps > = ( { tileId } ) => {
const color = `var(--text-color- ${ tileId } )` ;
return ( ) ;
}src/types/settings.tstileSize ใน src/components/sidebar/OptionsForTileTypeSelect.tsxtileType ใน src/components/TileContainer.tsxหากคุณต้องการที่เก็บข้อมูลถาวร
TileSettings ภายใน src/types/settings.tssrc/recoil/UserSettingsSelectors.tsxตัวอย่างตัวเลือก:
export const imageFilePathSelector = createTilePropertySelector < string > (
"imageFilePath" ,
( theme , newValue ) => {
theme . imageFilePath = newValue ;
}
) ;ใช้ตัวเลือกนั้นในกระเบื้อง:
const [ fileValue , setFileValue ] = useRecoilState (
imageFilePathSelector ( tileId )
) as [ string | undefined , SetterOrUpdater < string | undefined > ] ;การสร้างรายการเมนูแถบด้านข้างสำหรับตัวเลือก
OptionType ใน src/types/settings.tssrc/helpers/sideBarOptions.tssrc/components/sidebar/SettingOptionContainer.tsx