Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.
The English summary is being prepared. Showing the original description.
Advanced React patterns and best practices used in this portfolio
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Advanced React patterns, hooks, and best practices as applied in the PP Namias portfolio.
The portfolio uses a modal system built with compound components:
// src/components/ui/Modal.tsx
<Modal isOpen={isOpen} onClose={onClose}>
<ModalHeader>Title</ModalHeader>
<ModalBody>Content</ModalBody>
<ModalFooter>Actions</ModalFooter>
</Modal>
Registration: All modals are registered in src/hooks/useModal.tsx with typed keys.
// Always isolate SWR in tests
<SWRConfig value={{ provider: () => new Map() }}>
<Component />
</SWRConfig>
All sections follow the same pattern:
// src/components/sections/SectionName.tsx
'use client';
import { motion } from 'framer-motion';
export default function SectionName({ data }: Props) {
return (
<section>
<motion.div whileInView={{ opacity: 1 }} />
</section>
);
}
// Always use OptimizedImage, not raw <img>
<OptimizedImage
src={url}
alt={alt}
width={800}
height={600}
priority={isAboveFold}
/>
const TabsContext = createContext(null);
function Tabs({ children, defaultValue }) {
const [active, setActive] = useState(defaultValue);
return (
<TabsContext.Provider value={{ active, setActive }}>
<div>{children}</div>
</TabsContext.Provider>
);
}
function useMediaQuery(query: string) {
const [matches, setMatches] = useState(false);
useEffect(() => {
const mql = window.matchMedia(query);
setMatches(mql.matches);
const handler = (e: MediaQueryListEvent) => setMatches(e.matches);
mql.addEventListener('change', handler);
return () => mql.removeEventListener('change', handler);
}, [query]);
return matches;
}
// Split value and dispatch to prevent unnecessary re-renders
const StateContext = createContext(null);
const DispatchContext = createContext(null);
provider: () => new Map())useModal.tsxOptimizedImage componentNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.
The English summary is being prepared. Showing the original description.
Creates a new blog post document in the Sanity studio. Use when the user wants to write a blog post, publish an article, or schedule a future post.
The English summary is being prepared. Showing the original description.
Creates a new certification document in the Sanity studio. Use when the user wants to add a credential, certificate, or professional accreditation to the Certifications collection.
The English summary is being prepared. Showing the original description.
Adds a new skill MD file to the studio's skills collection. Use when the user wants to author a new step-by-step recipe for the studio's in-app Skills tool or the .agents mirror.
The English summary is being prepared. Showing the original description.
Creates a new project document in the Sanity studio. Use when the user wants to add a new portfolio project, a case study, or a work sample to the Projects collection.
The English summary is being prepared. Showing the original description.
Creates a new experience document in the Sanity studio. Use when the user wants to add a job, role, internship, or work history entry to the Experience collection.
The English summary is being prepared. Showing the original description.