Skip to content

Commit 69a4399

Browse files
committed
feat(): Adding the contact feature
1 parent 6c88475 commit 69a4399

11 files changed

Lines changed: 133 additions & 17 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { SVGProps } from 'react';
2+
3+
const GetInTouch = (props: SVGProps<SVGSVGElement>) => (
4+
<svg
5+
xmlns="http://www.w3.org/2000/svg"
6+
width="550"
7+
height="550"
8+
fill="currentColor"
9+
viewBox="0 0 550 550"
10+
{...props}
11+
>
12+
<path
13+
fill="#FFF"
14+
d="M341.392 8.956q5.145.723 10.294 1.429l6.646.924 3.056.423c4.572.645 9.117 1.344 13.653 2.204 8.279 1.538 16.629 2.62 24.967 3.779l5.557.777q5.817.813 11.635 1.621 7.34 1.021 14.68 2.05a16375 16375 0 0 0 17.055 2.38c11.768 1.635 23.535 3.223 35.356 4.436 16.873 1.844 31.808 6.532 43.147 19.689C532.467 55.565 532.787 63.802 532 72c-2.638 12.813-12.021 24.558-19.687 34.852-3.092 4.209-6.075 8.49-9.063 12.773l-3.668 5.25-1.826 2.613a2578 2578 0 0 1-25.115 35.246q-4.074 5.63-8.141 11.266l-3.25 4.5-1.625 2.25-4.875 6.75-1.627 2.253q-1.614 2.235-3.23 4.466c-2.83 3.91-5.64 7.831-8.424 11.773l-1.76 2.477a753 753 0 0 0-3.309 4.695c-3.222 4.522-6.325 8.298-11.4 10.836-4.853.582-9.826 1.111-14.277-1.164-3.33-2.745-5.918-5.507-6.723-9.836.47-7.92 2.564-15.123 4.875-22.688l.596-1.962C419.848 154.252 434.017 121.832 450 90c-6.826.549-12.715 2.394-19.125 4.75l-3.283 1.199c-31.665 11.776-62.772 26.363-91.898 43.471a990 990 0 0 1-8.155 4.717c-45.14 26.067-86.155 58.496-123.039 95.238l-2.536 2.521A269 269 0 0 0 188 257q-1.387 1.572-2.781 3.14C150.397 299.772 125.515 346.005 112 397l-.632 2.353c-2.874 10.85-4.551 21.785-6.005 32.906a843 843 0 0 1-1.144 8.264c-1.266 8.94-2.389 17.861-3.219 26.852-1.902 19.697-5.974 38.402-18 54.625l-1.387 1.937C74.337 533.277 63.7 538.544 53 543l-2.605 1.14c-3.818 1.37-7.397 1.466-11.395.86a250 250 0 0 1-6-4c-2.213-.386-2.213-.386-4.562-.5-4.249-.294-6.405-1.373-9.438-4.5-4.707-9.413-.747-27.032.645-37.318.404-3.053.767-6.11 1.132-9.166C30.376 411.968 62.262 336.446 109 274q1.265-1.71 2.527-3.422a478 478 0 0 1 33.77-40.629c2.033-2.193 3.992-4.44 5.941-6.707 4.193-4.81 8.679-9.305 13.2-13.805l2.447-2.458c4.319-4.313 8.712-8.47 13.34-12.448 2.413-2.08 4.747-4.244 7.088-6.406 5.404-4.917 10.964-9.586 16.687-14.125l1.965-1.563C216.72 163.909 227.681 155.763 239 148l2.09-1.443C289.608 113.161 344.935 85.412 402 70a722 722 0 0 0-19.625-6.313l-2.617-.818c-6.735-2.065-13.525-3.87-20.344-5.63a1600 1600 0 0 1-35.981-9.77 1129 1129 0 0 0-6.952-1.937 1239 1239 0 0 1-10.231-2.876l-3.119-.843c-7.087-2.057-12.53-4.802-16.631-11.126-.986-5.302-.31-9.927 1.938-14.812 14.41-16.167 33.79-9.616 52.954-6.919"
15+
></path>
16+
</svg>
17+
);
18+
19+
export default GetInTouch;

src/assets/icons/Common/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export { default as ArrowIcon } from './ArrowIcon';
55
export { default as RobotIcon } from './Robot';
66
export { default as LinkedInIcon } from './LinkedInIcon';
77
export { default as GithubIcon } from './GithubIcon';
8+
export { default as GetInTouch } from './GetInTouch';
89
export { default as MediumIcon } from './MediumIcon';
910
export { default as InstagramIcon } from './InstagramIcon';
1011
export { default as StarIcon } from './Star';

src/components/Chip/Chip.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ const Chip = ({ type, size = 'md' }: ChipProps) => {
102102
borderRadius="lg"
103103
border={`1px solid`}
104104
color="white"
105+
zIndex={10}
105106
>
106107
<Text fontSize="sm">{ChipMap[type].title}</Text>
107108
{ChipMap[type].Icon({})}

src/components/DotPattern/DotPattern.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ export function DotPattern({
2929
xmlns="http://www.w3.org/2000/svg"
3030
aria-hidden="true"
3131
className={
32-
'pointer-events-none relative inset-0 w-full fill-neutral-400/80 ' +
33-
className
32+
'pointer-events-none inset-0 w-full fill-neutral-400/80 ' + className
3433
}
3534
{...props}
3635
>

src/components/animateModal/AnimatedModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export const ModalBody = ({
100100
<motion.div
101101
ref={modalRef}
102102
className={
103-
'min-h-[50%] max-h-[90%] md:max-w-[47%] bg-white dark:bg-neutral-950 border border-transparent dark:border-neutral-800 md:rounded-2xl relative z-10 flex flex-col flex-1 overflow-hidden'
103+
'min-h-[50%] max-h-[90%] base:max-w-[60%] md:max-w-[47%] lg:max-w-[35%] bg-white dark:bg-neutral-950 border border-transparent dark:border-neutral-800 md:rounded-2xl relative z-10 flex flex-col flex-1 overflow-hidden'
104104
}
105105
initial={{
106106
opacity: 0,

src/components/animateModal/Modal.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
ModalFooter,
77
ModalTrigger,
88
} from './AnimatedModal';
9-
import { Box, Button, Heading, Text } from '@chakra-ui/react';
9+
import { Box, Button, Heading } from '@chakra-ui/react';
1010

1111
const AnimatedModal = ({
1212
triggerText,
@@ -23,17 +23,17 @@ const AnimatedModal = ({
2323
<Box height={10} className="flex items-center justify-center">
2424
<Modal>
2525
<ModalTrigger className="bg-white flex justify-center group/modal-btn">
26-
<Text
27-
height={10}
28-
border={'1px solid gray'}
26+
<Button
27+
variant="outline"
28+
colorScheme="white"
2929
boxShadow={'0 0 10px 2px #ffffff5a'}
3030
style={{
3131
padding: '0.5rem 1rem',
3232
borderRadius: '0.5rem',
3333
}}
3434
>
3535
{triggerText}
36-
</Text>
36+
</Button>
3737
</ModalTrigger>
3838
<ModalBody>
3939
<ModalContent>

src/data/contact.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export const CONTACT = {
2+
email: 'raikwar.amit.1603@gmail.com',
3+
github: 'https://github.com/onemanfighter',
4+
linkedIn: 'https://www.linkedin.com/in/amitrai1603/',
5+
medium: 'https://amitraikwar.medium.com/',
6+
instagram: 'https://www.instagram.com/',
7+
};

src/data/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export { PROJECT_DATA } from './Projects';
22
export { WORK_DATA } from './Work';
3+
export { CONTACT } from './contact';
34
export * from './types';

src/localization/locales/en/main.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
"title": "Skills"
2929
},
3030
"contact": {
31-
"title": "Contact"
31+
"title": "Contact",
32+
"description": "Get in touch, I'd love to hear from you! Whether you have a question, feedback, or just want to connect, feel free to reach out. You can contact me through the email below or use out LinkedIn, Instagram to message directly.",
33+
"getInTouch": "Get in Touch"
3234
},
3335
"articles": {
3436
"title": "Articles"

src/screens/mainFlow/components/SocialNavigation.tsx

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
import { useCursor } from '@components';
1919
import { RefObject, useRef } from 'react';
2020
import { CharacterType } from '../scene';
21+
import { CONTACT } from '@data';
2122

2223
const IconProps = {
2324
variant: 'ghost',
@@ -27,6 +28,9 @@ const IconProps = {
2728
_hover: {
2829
transform: 'scale(2.2)',
2930
},
31+
_active: {
32+
bg: 'transparent',
33+
},
3034
};
3135

3236
const SocialNavigation = ({
@@ -54,6 +58,7 @@ const SocialNavigation = ({
5458
const onMouseLeave = () => {
5559
setCursorInsets(undefined);
5660
};
61+
5762
return (
5863
<VStack position={'fixed'} bottom={20} right={14} rowGap={10} zIndex={1}>
5964
<Box
@@ -109,10 +114,38 @@ const SocialNavigation = ({
109114
backdropFilter={'blur(20px)'}
110115
transition={'background-color 0.3s'}
111116
>
112-
<IconButton aria-label="" icon={<GithubIcon />} {...IconProps} />
113-
<IconButton icon={<LinkedInIcon />} aria-label="" {...IconProps} />
114-
<IconButton icon={<MediumIcon />} aria-label="" {...IconProps} />
115-
<IconButton icon={<InstagramIcon />} aria-label="" {...IconProps} />
117+
<IconButton
118+
icon={<GithubIcon />}
119+
aria-label="github icon"
120+
as={'a'}
121+
href={CONTACT.github}
122+
target={'_blank'}
123+
{...IconProps}
124+
/>
125+
<IconButton
126+
icon={<LinkedInIcon />}
127+
aria-label="linkedin icon"
128+
as={'a'}
129+
href={CONTACT.linkedIn}
130+
target={'_blank'}
131+
{...IconProps}
132+
/>
133+
<IconButton
134+
icon={<MediumIcon />}
135+
aria-label="medium icon"
136+
as={'a'}
137+
href={CONTACT.medium}
138+
target={'_blank'}
139+
{...IconProps}
140+
/>
141+
<IconButton
142+
icon={<InstagramIcon />}
143+
aria-label="instagram icon"
144+
as={'a'}
145+
href={CONTACT.instagram}
146+
target={'_blank'}
147+
{...IconProps}
148+
/>
116149
</VStack>
117150
</VStack>
118151
);

0 commit comments

Comments
 (0)