feat: Complete multi-blog setup with 12 collections and subdomain routing
- Added 12 blog collections: art, bfs, dfs, problems, puzzles, reviews, reflections, vibes, workflows, magic, contests, poetry - Created content config with glob loaders for all collections - Added sample posts for each collection - Fixed TypeScript collection recognition by removing duplicate config - Made BlogPosts component collection-aware for proper routing - Created individual post pages ([...slug].astro) for each collection - Added Netlify subdomain routing configuration - Updated all references to use neeldhara.blog as main domain - Fixed navigation links in all-blogs component Ready for GitHub/Netlify deployment with subdomain support.
This commit is contained in:
commit
b47b761f1c
190 changed files with 16583 additions and 0 deletions
19
src/hooks/use-mobile.ts
Normal file
19
src/hooks/use-mobile.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import * as React from "react"
|
||||
|
||||
const MOBILE_BREAKPOINT = 768
|
||||
|
||||
export function useIsMobile() {
|
||||
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
|
||||
|
||||
React.useEffect(() => {
|
||||
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
|
||||
const onChange = () => {
|
||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
||||
}
|
||||
mql.addEventListener("change", onChange)
|
||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
||||
return () => mql.removeEventListener("change", onChange)
|
||||
}, [])
|
||||
|
||||
return !!isMobile
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue