From 524d412fe08f8c7e0e2e5b6f1d8758fbb6b2b760 Mon Sep 17 00:00:00 2001 From: Amit Raikwar Date: Tue, 29 Sep 2026 19:07:27 +0530 Subject: [PATCH] feat(AR-24): mobile responsiveness, navigation and marquee UI enhancements --- jest.config.js | 35 +- jest.js | 10 +- src/assets/icons/Common/CheckIcon.tsx | 19 + src/assets/icons/Common/CodeChefIcon.tsx | 18 + src/assets/icons/Common/CodeforcesIcon.tsx | 28 + src/assets/icons/Common/CopyIcon.tsx | 20 + .../icons/Common/__tests__/Common.test.tsx | 28 + .../__snapshots__/Common.test.tsx.snap | 84 + src/assets/icons/Common/index.ts | 4 + .../aws-certified-ai-practitioner.png | Bin 0 -> 43196 bytes .../aws-certified-cloud-practitioner.png | Bin 0 -> 44876 bytes .../Button/LinkButton/LinkButton.tsx | 5 +- src/components/Button/LinkButton/types.ts | 2 + src/components/CardComponent/CardExport.tsx | 28 +- .../__tests__/CardExport.test.tsx | 51 + src/components/Chip/Chip.tsx | 20 +- src/components/Chip/types.ts | 1 - src/components/Marquee/Marquee.tsx | 7 +- .../__snapshots__/Marquee.test.tsx.snap | 624 +- src/components/animateModal/AnimatedModal.tsx | 12 +- src/components/animateModal/Modal.tsx | 4 +- src/data/Certificates.ts | 24 + src/data/Work.ts | 11 +- src/data/contact.ts | 4 +- src/data/index.ts | 2 +- src/data/resume.ts | 6 +- src/data/types.ts | 9 + src/index.css | 8 +- src/localization/locales/en/main.json | 14 +- src/screens/common/NavigationBar.tsx | 34 +- src/screens/common/SocialNavigation.tsx | 45 +- .../common/__tests__/NavigationBar.test.tsx | 44 + .../__tests__/SocialNavigation.test.tsx | 57 + src/screens/mainFlow/contents/AboutMe.tsx | 71 +- .../mainFlow/contents/Certificates.tsx | 215 + src/screens/mainFlow/contents/Contact.tsx | 90 +- src/screens/mainFlow/contents/Contents.tsx | 4 +- src/screens/mainFlow/contents/Resume.tsx | 14 +- .../contents/__tests__/AboutMe.test.tsx | 16 + .../contents/__tests__/Certificates.test.tsx | 51 + .../contents/__tests__/Contact.test.tsx | 47 + .../contents/__tests__/Resume.test.tsx | 4 +- src/screens/mainFlow/contents/index.ts | 2 +- yarn.lock | 37413 +++++++++------- 44 files changed, 22993 insertions(+), 16192 deletions(-) create mode 100644 src/assets/icons/Common/CheckIcon.tsx create mode 100644 src/assets/icons/Common/CodeChefIcon.tsx create mode 100644 src/assets/icons/Common/CodeforcesIcon.tsx create mode 100644 src/assets/icons/Common/CopyIcon.tsx create mode 100644 src/assets/images/certificates/aws-certified-ai-practitioner.png create mode 100644 src/assets/images/certificates/aws-certified-cloud-practitioner.png create mode 100644 src/components/CardComponent/__tests__/CardExport.test.tsx create mode 100644 src/data/Certificates.ts create mode 100644 src/screens/common/__tests__/NavigationBar.test.tsx create mode 100644 src/screens/common/__tests__/SocialNavigation.test.tsx create mode 100644 src/screens/mainFlow/contents/Certificates.tsx create mode 100644 src/screens/mainFlow/contents/__tests__/AboutMe.test.tsx create mode 100644 src/screens/mainFlow/contents/__tests__/Certificates.test.tsx create mode 100644 src/screens/mainFlow/contents/__tests__/Contact.test.tsx diff --git a/jest.config.js b/jest.config.js index b51f6e5..4b8dd5d 100644 --- a/jest.config.js +++ b/jest.config.js @@ -55,20 +55,27 @@ module.exports = { '!src/testUtils/**/*', ], moduleNameMapper: { - '@assets/(.*)': '/src/assets/$1', - '@assets': '/src/assets', - '@screens': '/src/screens', - '@services': '/src/services', - '@screens/(.*)': '/src/screens/$1', - '@data': '/src/data', - '@hooks': '/src/hooks', - '@store/slice': '/src/store/slice', - '@store': '/src/store', - '@selectors': '/src/store/selectors', - '@components': '/src/components', - '@localization': '/src/localization', - '@providers': '/src/providers', - '@router': '/src/router', + '^@assets/(.*)$': '/src/assets/$1', + '^@assets$': '/src/assets', + '^@screens/(.*)$': '/src/screens/$1', + '^@screens$': '/src/screens', + '^@services/(.*)$': '/src/services/$1', + '^@services$': '/src/services', + '^@data/(.*)$': '/src/data/$1', + '^@data$': '/src/data', + '^@hooks/(.*)$': '/src/hooks/$1', + '^@hooks$': '/src/hooks', + '^@store/slice$': '/src/store/slice', + '^@store$': '/src/store', + '^@selectors$': '/src/store/selectors', + '^@components/(.*)$': '/src/components/$1', + '^@components$': '/src/components', + '^@localization/(.*)$': '/src/localization/$1', + '^@localization$': '/src/localization', + '^@providers/(.*)$': '/src/providers/$1', + '^@providers$': '/src/providers', + '^@router/(.*)$': '/src/router/$1', + '^@router$': '/src/router', '^.+.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', }, diff --git a/jest.js b/jest.js index 4a3647c..d3c307f 100644 --- a/jest.js +++ b/jest.js @@ -53,4 +53,12 @@ global.ResizeObserver = class ResizeObserver { disconnect = jest.fn(); }; - +global.IntersectionObserver = class IntersectionObserver { + root = null; + rootMargin = ''; + thresholds = []; + observe = jest.fn(); + unobserve = jest.fn(); + disconnect = jest.fn(); + takeRecords = jest.fn().mockReturnValue([]); +}; diff --git a/src/assets/icons/Common/CheckIcon.tsx b/src/assets/icons/Common/CheckIcon.tsx new file mode 100644 index 0000000..77fd79f --- /dev/null +++ b/src/assets/icons/Common/CheckIcon.tsx @@ -0,0 +1,19 @@ +import { SVGProps } from 'react'; + +const CheckIcon = (props: SVGProps) => ( + + + +); + +export default CheckIcon; diff --git a/src/assets/icons/Common/CodeChefIcon.tsx b/src/assets/icons/Common/CodeChefIcon.tsx new file mode 100644 index 0000000..62804c1 --- /dev/null +++ b/src/assets/icons/Common/CodeChefIcon.tsx @@ -0,0 +1,18 @@ +import { SVGProps } from 'react'; + +const CodeChefIcon = ({ + fill = 'currentColor', + ...props +}: SVGProps) => ( + + + +); + +export default CodeChefIcon; diff --git a/src/assets/icons/Common/CodeforcesIcon.tsx b/src/assets/icons/Common/CodeforcesIcon.tsx new file mode 100644 index 0000000..f7fa832 --- /dev/null +++ b/src/assets/icons/Common/CodeforcesIcon.tsx @@ -0,0 +1,28 @@ +import { SVGProps } from 'react'; + +const CodeforcesIcon = ({ + fill, + ...props +}: SVGProps) => ( + + + + + +); + +export default CodeforcesIcon; diff --git a/src/assets/icons/Common/CopyIcon.tsx b/src/assets/icons/Common/CopyIcon.tsx new file mode 100644 index 0000000..f4093b4 --- /dev/null +++ b/src/assets/icons/Common/CopyIcon.tsx @@ -0,0 +1,20 @@ +import { SVGProps } from 'react'; + +const CopyIcon = (props: SVGProps) => ( + + + + +); + +export default CopyIcon; diff --git a/src/assets/icons/Common/__tests__/Common.test.tsx b/src/assets/icons/Common/__tests__/Common.test.tsx index 7ed5872..5679b4d 100644 --- a/src/assets/icons/Common/__tests__/Common.test.tsx +++ b/src/assets/icons/Common/__tests__/Common.test.tsx @@ -2,6 +2,10 @@ import { render } from '@testing-library/react'; import { SearchIcon } from '../Search'; import { ThreeDIcon } from '../3D'; import { TwoDIcon } from '../2D'; +import CodeChefIcon from '../CodeChefIcon'; +import CodeforcesIcon from '../CodeforcesIcon'; +import CopyIcon from '../CopyIcon'; +import CheckIcon from '../CheckIcon'; describe('Common Icon', () => { it(' `SearchIcon` renders correctly', () => { @@ -21,4 +25,28 @@ describe('Common Icon', () => { expect(container).toMatchSnapshot(); }); + + it(' `CodeChefIcon` renders correctly', () => { + const { container } = render(); + + expect(container).toMatchSnapshot(); + }); + + it(' `CodeforcesIcon` renders correctly', () => { + const { container } = render(); + + expect(container).toMatchSnapshot(); + }); + + it(' `CopyIcon` renders correctly', () => { + const { container } = render(); + + expect(container).toMatchSnapshot(); + }); + + it(' `CheckIcon` renders correctly', () => { + const { container } = render(); + + expect(container).toMatchSnapshot(); + }); }); diff --git a/src/assets/icons/Common/__tests__/__snapshots__/Common.test.tsx.snap b/src/assets/icons/Common/__tests__/__snapshots__/Common.test.tsx.snap index 1c96e2f..374b22c 100644 --- a/src/assets/icons/Common/__tests__/__snapshots__/Common.test.tsx.snap +++ b/src/assets/icons/Common/__tests__/__snapshots__/Common.test.tsx.snap @@ -1,5 +1,89 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`Common Icon \`CheckIcon\` renders correctly 1`] = ` +
+ + + +
+`; + +exports[`Common Icon \`CodeChefIcon\` renders correctly 1`] = ` +
+ + + +
+`; + +exports[`Common Icon \`CodeforcesIcon\` renders correctly 1`] = ` +
+ + + + + +
+`; + +exports[`Common Icon \`CopyIcon\` renders correctly 1`] = ` +
+ + + + +
+`; + exports[`Common Icon \`SearchIcon\` renders correctly 1`] = `
6mwR1~0xm!MD3gNQvGY0dsVlttT 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 daEQ-7zk~n(g17Ncd*A}XxAub$tK; literal 0 HcmV?d00001 diff --git a/src/assets/images/certificates/aws-certified-cloud-practitioner.png b/src/assets/images/certificates/aws-certified-cloud-practitioner.png new file mode 100644 index 0000000000000000000000000000000000000000..619ae9600c5cfdaa60f950f29a20cc3048d6c373 GIT binary patch literal 44876 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

}<2aM$sCLRNjCps}vAG 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 P7$9K2%wlP(i396@xjhm_ literal 0 HcmV?d00001 diff --git a/src/components/Button/LinkButton/LinkButton.tsx b/src/components/Button/LinkButton/LinkButton.tsx index 1363ee7..6379c35 100644 --- a/src/components/Button/LinkButton/LinkButton.tsx +++ b/src/components/Button/LinkButton/LinkButton.tsx @@ -9,6 +9,8 @@ const LinkButton = ({ withUnderline, withArrow, fontSize, + px, + minW, onClick, href = undefined, }: LinkButtonProps) => { @@ -44,7 +46,8 @@ const LinkButton = ({ fontWeight={'300'} borderRadius={0} overflow={'clip'} - px={2} + px={px ?? { base: 1, sm: 1.5, md: 2 }} + minW={minW ?? 'auto'} maxHeight={'7'} _hover={{ color: 'violet' }} borderBottom={withUnderline ? '1px solid white' : 'none'} diff --git a/src/components/Button/LinkButton/types.ts b/src/components/Button/LinkButton/types.ts index 45c3182..1b4ac02 100644 --- a/src/components/Button/LinkButton/types.ts +++ b/src/components/Button/LinkButton/types.ts @@ -6,5 +6,7 @@ export type LinkButtonProps = { withArrow?: boolean; href?: string; fontSize?: BoxProps['fontSize']; + px?: BoxProps['px']; + minW?: BoxProps['minW']; onClick?: (target: string) => void; }; diff --git a/src/components/CardComponent/CardExport.tsx b/src/components/CardComponent/CardExport.tsx index 8230bbc..4134f2e 100644 --- a/src/components/CardComponent/CardExport.tsx +++ b/src/components/CardComponent/CardExport.tsx @@ -2,8 +2,8 @@ import { useRef, useState } from 'react'; import { useCursor } from '../Cursor'; import { CardBasic } from './Card'; import { CardExportProps } from './types'; -import { Box, Button, HStack, Text, Wrap } from '@chakra-ui/react'; -import { Chip, Language } from '../Chip'; +import { Box, Button, Flex, HStack, Text, Wrap } from '@chakra-ui/react'; +import { Chip } from '../Chip'; import { Link } from 'react-router-dom'; import { PROJECT_NAME_ICON_MAP } from '@assets'; import { Status } from '@data'; @@ -122,11 +122,12 @@ const Card = ({ )} - @@ -141,10 +142,20 @@ const Card = ({ > {titleText} - - + )} -

); diff --git a/src/components/CardComponent/__tests__/CardExport.test.tsx b/src/components/CardComponent/__tests__/CardExport.test.tsx new file mode 100644 index 0000000..535bcc1 --- /dev/null +++ b/src/components/CardComponent/__tests__/CardExport.test.tsx @@ -0,0 +1,51 @@ +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { MemoryRouter } from 'react-router-dom'; +import Card from '../CardExport'; +import { Language } from '../../Chip'; +import { Status } from '@data'; + +jest.mock('../../Cursor', () => ({ + useCursor: () => ({ + setCursorInsets: jest.fn(), + }), +})); + +describe('Card (CardExport)', () => { + const defaultProps = { + titleText: 'Portfolio Site', + chips: [Language.typescript, Language.react], + centerText: 'PF', + icon: 'portfolio', + description: 'A personal portfolio website showcasing projects and blogs.', + link: 'https://example.com', + npmLink: 'https://npmjs.com/package/test', + status: Status.LIVE, + }; + + it('should render the card with title, description, and Know More button', () => { + render( + + + , + ); + + expect(screen.getByText('Portfolio Site')).toBeInTheDocument(); + expect(screen.getByText(defaultProps.description)).toBeInTheDocument(); + + const knowMoreBtn = screen.getByRole('link', { name: /know more/i }); + expect(knowMoreBtn).toBeInTheDocument(); + expect(knowMoreBtn).toHaveAttribute('href', '/projects/portfolio'); + }); + + it('should render live status badge and npm link when provided', () => { + render( + + + , + ); + + expect(screen.getByText(Status.LIVE)).toBeInTheDocument(); + expect(screen.getByText('NPM')).toBeInTheDocument(); + }); +}); diff --git a/src/components/Chip/Chip.tsx b/src/components/Chip/Chip.tsx index 880a83a..c1de92b 100644 --- a/src/components/Chip/Chip.tsx +++ b/src/components/Chip/Chip.tsx @@ -101,16 +101,16 @@ export const ChipMap: Record< title: 'Tauri', Icon: (props: SVGProps) => , }, - [Skills.more]: { - title: 'More...', - Icon: (_props: SVGProps) => <>, - }, }; const Chip = ({ type, size = 'md' }: ChipProps) => { const isMd = size === 'md'; const isSm = size === 'sm'; - const { title, Icon } = ChipMap[type]; + const chip = ChipMap[type] || { + title: type, + Icon: () => null, + }; + const { title, Icon } = chip; return ( { '0 6px 16px 0 rgba(0, 0, 0, 0.25), inset 0 1px 1px 0 rgba(255, 255, 255, 0.1)', }} > - {type !== Skills.more && ( - - )} + @@ -36,9 +36,14 @@ const Marquee = ({
Test container
Test container
Test container
Test container
@@ -33,206 +37,246 @@ exports[`Marquee should render the Marquee component 1`] = ` exports[`Marquee should render the Marquee component 2`] = `
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
@@ -243,206 +287,246 @@ exports[`Marquee should render the Marquee component 2`] = ` exports[`Marquee should render the Marquee component with horizontal direction 1`] = `
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
@@ -453,206 +537,246 @@ exports[`Marquee should render the Marquee component with horizontal direction 1 exports[`Marquee should render the Marquee component with reverse false 1`] = `
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
@@ -663,206 +787,246 @@ exports[`Marquee should render the Marquee component with reverse false 1`] = ` exports[`Marquee should render the Marquee component with vertical direction 1`] = `
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
@@ -873,206 +1037,246 @@ exports[`Marquee should render the Marquee component with vertical direction 1`] exports[`Marquee should render the Marquee component without hover 1`] = `
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
Test container
diff --git a/src/components/animateModal/AnimatedModal.tsx b/src/components/animateModal/AnimatedModal.tsx index e76a3c0..4ae4c3f 100644 --- a/src/components/animateModal/AnimatedModal.tsx +++ b/src/components/animateModal/AnimatedModal.tsx @@ -39,7 +39,7 @@ export function Modal({ children }: { children: ReactNode }) { export const ModalTrigger = ({ children, - className, + className = '', }: { children: ReactNode; className?: string; @@ -47,10 +47,7 @@ export const ModalTrigger = ({ const { setOpen } = useModal(); return (