From e749af4c02d0ec385228f6fb25be06e0a4d4dd44 Mon Sep 17 00:00:00 2001 From: Alexandre Marques Date: Sun, 6 Apr 2025 10:32:12 +0100 Subject: [PATCH] feat: update package dependencies, remove unused components, and enhance page titles for better clarity --- apps/web/package.json | 6 +-- apps/web/src/app/api/og/route.tsx | 3 +- apps/web/src/app/category/[category]/page.tsx | 9 +--- apps/web/src/app/location/[location]/page.tsx | 9 +--- apps/web/src/components/AnimateNumber.tsx | 9 ++++ .../components/AnimatedCompaniesFeatures.tsx | 27 ---------- apps/web/src/components/Breadcrumb.tsx | 54 ------------------- apps/web/src/components/CompaniesHeader.tsx | 41 +++++++------- package-lock.json | 31 ++++++----- 9 files changed, 55 insertions(+), 134 deletions(-) create mode 100644 apps/web/src/components/AnimateNumber.tsx delete mode 100644 apps/web/src/components/AnimatedCompaniesFeatures.tsx delete mode 100644 apps/web/src/components/Breadcrumb.tsx diff --git a/apps/web/package.json b/apps/web/package.json index d71628f..1db186d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-label": "2.1.1", "@radix-ui/react-select": "2.1.4", "@radix-ui/react-slot": "1.1.1", + "@tech-companies-portugal/analytics": "*", "cheerio": "1.0.0-rc.12", "class-variance-authority": "0.7.0", "clsx": "2.1.0", @@ -29,15 +30,14 @@ "next": "15.2.3", "nuqs": "2.3.1", "react": "19.0.0", + "react-countup": "6.5.3", "react-dom": "19.0.0", - "react-type-animation": "3.2.0", "recharts": "2.15.0", "sharp": "0.33.2", "slugify": "1.6.6", "tailwind-merge": "2.2.1", "tailwindcss-animate": "1.0.7", - "use-debounce": "10.0.4", - "@tech-companies-portugal/analytics": "*" + "use-debounce": "10.0.4" }, "devDependencies": { "@playwright/test": "1.50.0", diff --git a/apps/web/src/app/api/og/route.tsx b/apps/web/src/app/api/og/route.tsx index 8804a81..f3c0c6c 100644 --- a/apps/web/src/app/api/og/route.tsx +++ b/apps/web/src/app/api/og/route.tsx @@ -11,7 +11,7 @@ export async function GET(request: Request) { const title = (searchParams.has("title") && searchParams.get("title")) || - "Tech Companies in Portugal | Leading Startups & Innovators"; + "Tech Companies in Portugal"; const description = (searchParams.has("description") && searchParams.get("description")) || @@ -86,7 +86,6 @@ export async function GET(request: Request) { style={{ display: "flex", fontSize: 50, - fontFamily: "Geist Mono SemiBold", }} > {title} diff --git a/apps/web/src/app/category/[category]/page.tsx b/apps/web/src/app/category/[category]/page.tsx index 410faeb..c7f11b1 100644 --- a/apps/web/src/app/category/[category]/page.tsx +++ b/apps/web/src/app/category/[category]/page.tsx @@ -1,4 +1,3 @@ -import { Breadcrumb } from "@/components/Breadcrumb"; import CompaniesList from "@/components/CompaniesList"; import { CompaniesListSkeleton } from "@/components/CompaniesListSkeleton"; import { @@ -77,13 +76,7 @@ export default async function CategoryPage({ return (
- -

{category} Companies

+

Tech Companies | {category}

}>
- -

Companies in {location}

+

Tech Companies in {location}

}> { + return ; +}; diff --git a/apps/web/src/components/AnimatedCompaniesFeatures.tsx b/apps/web/src/components/AnimatedCompaniesFeatures.tsx deleted file mode 100644 index 836fa08..0000000 --- a/apps/web/src/components/AnimatedCompaniesFeatures.tsx +++ /dev/null @@ -1,27 +0,0 @@ -"use client"; - -import { TypeAnimation } from "react-type-animation"; - -export const AnimatedCompaniesFeatures = () => { - return ( - - ); -}; diff --git a/apps/web/src/components/Breadcrumb.tsx b/apps/web/src/components/Breadcrumb.tsx deleted file mode 100644 index 5ddf321..0000000 --- a/apps/web/src/components/Breadcrumb.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { cn } from "@/lib/utils"; -import { ChevronRight, Home } from "lucide-react"; -import Link from "next/link"; - -export type BreadcrumbItem = { - label: string; - href?: string; - className?: string; -}; - -type BreadcrumbProps = { - items: BreadcrumbItem[]; - className?: string; -}; - -export function Breadcrumb({ items, className }: BreadcrumbProps) { - return ( - - ); -} diff --git a/apps/web/src/components/CompaniesHeader.tsx b/apps/web/src/components/CompaniesHeader.tsx index 76d9302..693f71f 100644 --- a/apps/web/src/components/CompaniesHeader.tsx +++ b/apps/web/src/components/CompaniesHeader.tsx @@ -1,30 +1,31 @@ -import Image from "next/image"; -import bgHeader from "../../public/assets/images/bg-header.webp"; -import { AnimatedCompaniesFeatures } from "./AnimatedCompaniesFeatures"; +import { PlayCircle } from "lucide-react"; +import { AnimateNumber } from "./AnimateNumber"; export default function CompaniesHeader() { return (
-
- Background Tech Companies in Portugal -
+
+
+ + + + + Tech Companies + +
-
-

- Discover Leading Tech Companies in Portugal 🇵🇹 -

- +
+

+ The largest directory of tech + companies in Portugal +

+

+ Discover the best tech companies hiring in Portugal, from startups + to established enterprises, all in one place. +

+
); diff --git a/package-lock.json b/package-lock.json index e074d5c..072bf9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,8 +38,8 @@ "next": "15.2.3", "nuqs": "2.3.1", "react": "19.0.0", + "react-countup": "6.5.3", "react-dom": "19.0.0", - "react-type-animation": "3.2.0", "recharts": "2.15.0", "sharp": "0.33.2", "slugify": "1.6.6", @@ -2116,6 +2116,12 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/countup.js": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.0.tgz", + "integrity": "sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==", + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4167,6 +4173,18 @@ "node": ">=0.10.0" } }, + "node_modules/react-countup": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.5.3.tgz", + "integrity": "sha512-udnqVQitxC7QWADSPDOxVWULkLvKUWrDapn5i53HE4DPRVgs+Y5rr4bo25qEl8jSh+0l2cToJgGMx+clxPM3+w==", + "license": "MIT", + "dependencies": { + "countup.js": "^2.8.0" + }, + "peerDependencies": { + "react": ">= 16.3.0" + } + }, "node_modules/react-dom": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", @@ -4285,17 +4303,6 @@ "react-dom": ">=16.6.0" } }, - "node_modules/react-type-animation": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-type-animation/-/react-type-animation-3.2.0.tgz", - "integrity": "sha512-WXTe0i3rRNKjmggPvT5ntye1QBt0ATGbijeW6V3cQe2W0jaMABXXlPPEdtofnS9tM7wSRHchEvI9SUw+0kUohw==", - "license": "MIT", - "peerDependencies": { - "prop-types": "^15.5.4", - "react": ">= 15.0.0", - "react-dom": ">= 15.0.0" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",