{workItem.title}
+ + {workItem.company_link ? ( + + {workItem.company} + + ) : ( +{workItem.company}
+ )} ++ {workItem.duration} +
+From 6f953d73c90eadb70eccdb025348bc50a3e641bb Mon Sep 17 00:00:00 2001 From: Braydon Coyer <38799309+braydoncoyer@users.noreply.github.com> Date: Sun, 26 Jun 2022 07:40:53 -0700 Subject: [PATCH 01/54] Added a debounce to fix button mashing for article reactions (#174) --- README.md | 2 +- components/Reactions.tsx | 9 +++++++-- lib/hooks/useDebounce.ts | 25 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 lib/hooks/useDebounce.ts diff --git a/README.md b/README.md index 4934d876..3d8d8b17 100644 --- a/README.md +++ b/README.md @@ -35,5 +35,5 @@ $ npm run dev Create a `.env` file similar to `.env.example` and include the appropriate keys. ## Notion Article Template -Duplicate [the following Notion database](https://www.notion.so/0d3e00c6bbe54231897b9fcbc7747f78?v=4d7f0006d9a144b5bd8b9251f2ec39cd), grab the database ID and add it to the environment variables in the `.env` file. +Duplicate [the following Notion database](https://www.notion.so/0d3e00c6bbe54231897b9fcbc7747f78?v=4d7f0006d9a144b5bd8b9251f2ec39cd), grab the database ID and add it to the environment variables in the `.env` file. diff --git a/components/Reactions.tsx b/components/Reactions.tsx index 0b7bdfe5..85fbf0be 100644 --- a/components/Reactions.tsx +++ b/components/Reactions.tsx @@ -1,4 +1,5 @@ import useArticleReactions from '@/hooks/useArticleReactions'; +import { useDebounce } from '@/lib/hooks/useDebounce'; const Reactions = ({ slug }) => { const { @@ -65,15 +66,19 @@ const Reactions = ({ slug }) => { export default Reactions; function ReactionCard({ isActive, incrementCB, decrementCB, children }) { + const handleClick = useDebounce( + isActive ? () => decrementCB() : () => incrementCB(), + 300 + ); return (
{workItem.company}
+ )} ++ {workItem.duration} +
+Architect and lead frontend features for Risk Cloud users.
+Architect and lead frontend features for Risk Cloud users.
+Architect and lead frontend features for Risk Cloud users.
+ ` + }, + { + title: 'Senior FullStack Engineer', + duration: '2019 - 2021', + company: 'Cognizant', + company_link: 'https://www.cognizant.com/us/en', + content: ` +Architect and develop full-stack RESTful microservices using Netflix OSS, Java, Spring Boot, SQL, Angular, React, and Vue.
+Lead development teams using extreme programming principles such as agile, test-driven development, and paired programming.
+Spearheaded information architecture and developed a reusable UI component library for healthcare clients.
+Lead over 650 developers through a monthly enablement process training them for client work on the Digital Engineering stack.
+ ` + }, + { + title: 'UI Developer', + duration: '2018 - 2019', + company: 'projekt202', + company_link: 'https://www.projekt202.com', + content: ` +Helped lead development of a reusable UI component library, interfacing heavily with multi-million dollar airline client for requirements.
+Responsible for developing solutions for multi-million dollar enterprise clients, utilizing Angular 7 for the frontend.
+ ` + }, + { + title: 'Founder & Developer', + duration: '2011 - 2018', + company: 'Major 4 Apps', + content: ` +Develop custom applications for clients.
+Design, develop, test and support mobile applications on iOS and Android platforms.
+Mobile game ranked in the top 200 on the Amazon App Store.
+Mobile game featured in the top 20 GameSalad games on the Tizen App Store.
+Mobile games featured as New and Noteworthy in the iOS App Store.
+ ` + } +]; diff --git a/lib/types.ts b/lib/types.ts index 973645c3..ade17dc3 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -59,6 +59,14 @@ export type Reactions = { party_count: number; }; +export type WorkTimeline = { + title: string; + duration: string; + company: string; + company_link?: string; + content: any; +}; + export type Language = | 'markup' | 'bash' diff --git a/pages/about.tsx b/pages/about.tsx index c796d11d..96cf962a 100644 --- a/pages/about.tsx +++ b/pages/about.tsx @@ -1,38 +1,16 @@ -import { ButtonType } from '@/lib/types'; import { convertToArticleList, getPublishedArticles } from '@/lib/notion'; +import { Ad } from '@/components/Ad'; import { ArticleList } from '@/components/ArticleList'; import { Button } from '@/components/Button'; +import { ButtonType } from '@/lib/types'; import { Container } from 'layouts/Container'; import { GetStaticProps } from 'next'; import Image from 'next/image'; import Link from 'next/link'; +import { WorkTimeline } from '@/components/WorkTimeline'; import siteMetadata from '@/data/siteMetadata'; import { useRouter } from 'next/router'; -import { Ad } from '@/components/Ad'; - -const workExperience = [ - { - company: 'LogicGate', - title: 'Front End Developer', - duration: '2022 -' - }, - { - company: 'Cognizant', - title: 'Full-Stack Engineer', - duration: '2019 - 2021' - }, - { - company: 'projekt202', - title: 'UI Developer', - duration: '2018 - 2019' - }, - { - company: 'Major 4 Apps', - title: 'Founder', - duration: '2011 - 2018' - } -]; export default function About({ recentArticles }) { const { push } = useRouter(); @@ -116,22 +94,8 @@ export default function About({ recentArticles }) {Here's a brief rundown of my most recent experiences.
-