Work Experience
lyminhnghia/work-experienceFreeComponent
Display work experiences with role details, company logos, and durations.
Install it
npx shadcn@latest add https://lyminhnghia.github.io/r/work-experience.jsonSource
1"use client"23import { BriefcaseBusinessIcon, InfinityIcon } from "lucide-react"4import { type ComponentProps, useCallback, useRef } from "react"5import ReactMarkdown from "react-markdown"67import {8 Collapsible,9 CollapsibleContent,10 CollapsibleTrigger,11} from "@/components/ui/collapsible"12import { Separator } from "@/components/ui/separator"13import { cn } from "@/lib/utils"14import type { ChevronsUpDownIconHandle } from "@/registry/components/chevrons-up-down-icon"15import { ChevronsUpDownIcon } from "@/registry/components/chevrons-up-down-icon"1617export type ExperiencePositionItemType = {18 /** Unique identifier for the position */19 id: string20 /** The job title or position name */21 title: string22 /**23 * Employment period of the position.24 * Use "MM.YYYY" or "YYYY" format. Omit `end` for current roles.25 */26 employmentPeriod: {27 /** Start date (e.g., "10.2022" or "2020"). */28 start: string29 /** End date; leave undefined for "Present". */30 end?: string31 }32 /** The type of employment (e.g., "Full-time", "Part-time", "Contract") */33 employmentType?: string34 /** A brief description of the position or responsibilities */35 description?: string36 /** An icon representing the position */37 icon?: React.ReactNode38 /** A list of skills associated with the position */39 skills?: string[]40 /** Indicates if the position details are expanded in the UI */41 isExpanded?: boolean42}4344export type ExperienceItemType = {45 /** Unique identifier for the experience item */46 id: string47 /** Name of the company where the experience was gained */48 companyName: string49 /** URL or path to the company's logo image */50 companyLogo?: string51 /** URL to the company's website. */52 companyWebsite?: string53 /**54 * List of positions held at the company55 * @fumadocsHref #experiencepositionitemtype56 * */57 positions: ExperiencePositionItemType[]58 /** Indicates if this is the user's current employer */59 isCurrentEmployer?: boolean60}6162export type WorkExperienceProps = {63 className?: string64 /** @fumadocsHref #experienceitemtype */65 experiences: ExperienceItemType[]66}6768export function WorkExperience({69 className,70 experiences,71}: WorkExperienceProps) {72 return (73 <div className={cn("bg-background px-4 text-foreground", className)}>74 {experiences.map((experience) => (75 <ExperienceItem key={experience.id} experience={experience} />76 ))}77 </div>78 )79}8081export type ExperienceItemProps = {82 experience: ExperienceItemType83}8485// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from lyminhnghia
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Apple Hello Effectapple-hello-effect | lyminhnghia | Components | Free | 1 dep | |
| chevrons-up-down-iconchevrons-up-down-icon | lyminhnghia | Components | Free | no deps | |
| Code Block Commandcode-block-command | lyminhnghia | Components | Free | 4 deps · 3 files | |
| Consent Managerconsent-manager | lyminhnghia | Components | Free | 1 dep | |
| Copy Buttoncopy-button | lyminhnghia | Components | Free | 2 deps · 2 files | |
| GitHub Starsgithub-stars | lyminhnghia | Components | Free | no deps | |
| Scroll Fade Effectscroll-fade-effect | lyminhnghia | Components | Free | no deps | |
| Shimmering Textshimmering-text | lyminhnghia | Components | Free | 1 dep |
