From 6c5671c6785f652823a2fbe41bec69ef26164204 Mon Sep 17 00:00:00 2001 From: gloria Date: Thu, 28 Aug 2025 12:30:18 +0200 Subject: [PATCH 1/5] chore: run prettier format on all files except .md --- apps/contact/app/layout.tsx | 8 +- apps/contact/app/page.tsx | 6 +- .../NextLevelButtonClickTracker/demo.tsx | 21 ++-- .../useClickTracker.tsx | 6 +- .../demos/SimpleButtonClickTracker/demo.tsx | 15 ++- .../useClickCounter.tsx | 6 +- .../demos/SimpleMouseTracker/demo.tsx | 8 +- .../SimpleMouseTracker/useMousePosition.tsx | 14 ++- .../demos/useDebouncedSearch/demo.tsx | 21 ++-- .../useDebouncedSearch/useDebouncedSearch.tsx | 10 +- .../demos/useFetchData/demo.tsx | 12 +- .../demos/useFetchData/useFetchData.tsx | 12 +- apps/website/src/pages/sitemap.xml.ts | 9 +- packages/remark-plugin/index.ts | 109 ++++++++++-------- 14 files changed, 144 insertions(+), 113 deletions(-) diff --git a/apps/contact/app/layout.tsx b/apps/contact/app/layout.tsx index 1506048c..13ae3fd1 100644 --- a/apps/contact/app/layout.tsx +++ b/apps/contact/app/layout.tsx @@ -1,13 +1,9 @@ -export default function Layout({ - children, -}: { - children: React.ReactNode -}) { +export default function Layout({ children }: { children: React.ReactNode }) { return (
{children}
- ) + ); } diff --git a/apps/contact/app/page.tsx b/apps/contact/app/page.tsx index 63c50100..e8b845c7 100644 --- a/apps/contact/app/page.tsx +++ b/apps/contact/app/page.tsx @@ -1,7 +1,3 @@ export default function Home() { - return ( -
- THIS IS API -
- ); + return
THIS IS API
; } diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/demo.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/demo.tsx index e0148c4c..99710d7b 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/demo.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/demo.tsx @@ -1,16 +1,23 @@ -import React from 'react'; -import { useClickTracker } from './useClickTracker'; +import React from "react"; +import { useClickTracker } from "./useClickTracker"; const NextLevelButtonClickTracker: React.FC = () => { const [state, incrementCount] = useClickTracker(); return ( -
+

Button has been clicked {state.count} times

- Last clicked at:{' '} - {state.lastClicked ? new Date(state.lastClicked).toLocaleString() : 'Never'} + Last clicked at:{" "} + {state.lastClicked + ? new Date(state.lastClicked).toLocaleString() + : "Never"}

- +
); }; -export default NextLevelButtonClickTracker; \ No newline at end of file +export default NextLevelButtonClickTracker; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/useClickTracker.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/useClickTracker.tsx index c99f2dff..e99f3b20 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/useClickTracker.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/NextLevelButtonClickTracker/useClickTracker.tsx @@ -1,4 +1,4 @@ -import { useState, useCallback } from 'react'; +import { useState, useCallback } from "react"; interface UseClickTrackerState { count: number; lastClicked: number | null; @@ -9,10 +9,10 @@ export const useClickTracker = (): [UseClickTrackerState, () => void] => { lastClicked: null, }); const incrementCount = useCallback(() => { - setState(prevState => ({ + setState((prevState) => ({ count: prevState.count + 1, lastClicked: Date.now(), })); }, [setState]); return [state, incrementCount]; -}; \ No newline at end of file +}; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/demo.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/demo.tsx index e968db93..4fc2f674 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/demo.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/demo.tsx @@ -1,12 +1,17 @@ -import React from 'react'; -import { useClickCounter } from './useClickCounter'; +import React from "react"; +import { useClickCounter } from "./useClickCounter"; const SimpleButtonClickTracker: React.FC = () => { const [count, increment] = useClickCounter(); return ( -
+

Button has been clicked {count} times

- +
); }; -export default SimpleButtonClickTracker; \ No newline at end of file +export default SimpleButtonClickTracker; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/useClickCounter.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/useClickCounter.tsx index 73793e0c..6fe7f699 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/useClickCounter.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleButtonClickTracker/useClickCounter.tsx @@ -1,6 +1,6 @@ -import { useState } from 'react'; +import { useState } from "react"; export const useClickCounter = () => { const [count, setCount] = useState(0); - const increment = () => setCount(prevCount => prevCount + 1); + const increment = () => setCount((prevCount) => prevCount + 1); return [count, increment] as const; -}; \ No newline at end of file +}; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/demo.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/demo.tsx index 8ef03bc6..e730690c 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/demo.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/demo.tsx @@ -1,13 +1,13 @@ -import React from 'react'; -import { useMousePosition } from './useMousePosition'; +import React from "react"; +import { useMousePosition } from "./useMousePosition"; const SimpleMouseTracker: React.FC = () => { const [position] = useMousePosition(); return ( -
+

X: {position.x}

Y: {position.y}

); }; -export default SimpleMouseTracker; \ No newline at end of file +export default SimpleMouseTracker; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/useMousePosition.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/useMousePosition.tsx index 63c40a6d..faadc7c6 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/useMousePosition.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/SimpleMouseTracker/useMousePosition.tsx @@ -1,15 +1,17 @@ -import { useState, useEffect } from 'react'; -export const useMousePosition = (): [{ x: number, y: number }, -React.Dispatch>] => { +import { useState, useEffect } from "react"; +export const useMousePosition = (): [ + { x: number; y: number }, + React.Dispatch>, +] => { const [position, setPosition] = useState({ x: 0, y: 0 }); useEffect(() => { const handleMouseMove = (event: MouseEvent) => { setPosition({ x: event.clientX, y: event.clientY }); }; - window.addEventListener('mousemove', handleMouseMove); + window.addEventListener("mousemove", handleMouseMove); return () => { - window.removeEventListener('mousemove', handleMouseMove); + window.removeEventListener("mousemove", handleMouseMove); }; }, []); return [position, setPosition]; -}; \ No newline at end of file +}; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/demo.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/demo.tsx index be871106..f903a336 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/demo.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/demo.tsx @@ -1,28 +1,31 @@ // Use the hook in a component -import React, { useState } from 'react'; -import { useDebouncedSearch } from './useDebouncedSearch'; +import React, { useState } from "react"; +import { useDebouncedSearch } from "./useDebouncedSearch"; const UseDebouncedSearchDemo: React.FC = () => { - const [searchTerm, setSearchTerm] = useState(''); + const [searchTerm, setSearchTerm] = useState(""); const handleSearch = (value: string) => { console.log(`Searching for: ${value}`); }; - const [debouncedSearchTerm] = useDebouncedSearch(searchTerm, handleSearch, 500); - + const [debouncedSearchTerm] = useDebouncedSearch( + searchTerm, + handleSearch, + 500, + ); return ( -
+
setSearchTerm(e.target.value)} + onChange={(e) => setSearchTerm(e.target.value)} />

Debounced search term: {debouncedSearchTerm}

); }; -export default UseDebouncedSearchDemo; \ No newline at end of file +export default UseDebouncedSearchDemo; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/useDebouncedSearch.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/useDebouncedSearch.tsx index 10b69940..cdd5eb87 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/useDebouncedSearch.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useDebouncedSearch/useDebouncedSearch.tsx @@ -1,6 +1,10 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect } from "react"; -export const useDebouncedSearch = (value: string, search: (value: string) => void, wait: number) => { +export const useDebouncedSearch = ( + value: string, + search: (value: string) => void, + wait: number, +) => { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { @@ -18,4 +22,4 @@ export const useDebouncedSearch = (value: string, search: (value: string) => voi }, [debouncedValue, search]); return [debouncedValue]; -}; \ No newline at end of file +}; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/demo.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/demo.tsx index 47df60fc..ca5eb20f 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/demo.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/demo.tsx @@ -1,15 +1,17 @@ -import React from 'react'; -import { useFetchData } from './useFetchData'; +import React from "react"; +import { useFetchData } from "./useFetchData"; const UseFetchDataDemo: React.FC = () => { - const [data, error, loading] = useFetchData('https://jsonplaceholder.typicode.com/posts'); + const [data, error, loading] = useFetchData( + "https://jsonplaceholder.typicode.com/posts", + ); if (loading) return

Loading...

; if (error) return

Error: {error.message}

; if (!data) return

No data

; return ( -
+
    {data.slice(0, 5).map((item) => (
  • {item.title}
  • @@ -19,4 +21,4 @@ const UseFetchDataDemo: React.FC = () => { ); }; -export default UseFetchDataDemo; \ No newline at end of file +export default UseFetchDataDemo; diff --git a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/useFetchData.tsx b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/useFetchData.tsx index c2895345..8d3599ed 100644 --- a/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/useFetchData.tsx +++ b/apps/website/src/content/partials/how-to-write-custom-react-hooks/demos/useFetchData/useFetchData.tsx @@ -1,15 +1,15 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect } from "react"; interface Post { - userId: number; - id: number; - title: string; - body: string; + userId: number; + id: number; + title: string; + body: string; } export const useFetchData = (url: string) => { const [data, setData] = useState(null); - const [error, setError] = useState<{message: string} | null>(null); + const [error, setError] = useState<{ message: string } | null>(null); const [loading, setLoading] = useState(false); useEffect(() => { diff --git a/apps/website/src/pages/sitemap.xml.ts b/apps/website/src/pages/sitemap.xml.ts index 968c6737..feccac12 100644 --- a/apps/website/src/pages/sitemap.xml.ts +++ b/apps/website/src/pages/sitemap.xml.ts @@ -25,13 +25,14 @@ export async function GET() { ${lastmod.toISOString().slice(0, 10)} ${priority} monthly - ${imageUrl - ? ` + ${ + imageUrl + ? ` ${imageUrl} ` - : "" - } + : "" + } `; diff --git a/packages/remark-plugin/index.ts b/packages/remark-plugin/index.ts index 16a35bff..61b7070b 100644 --- a/packages/remark-plugin/index.ts +++ b/packages/remark-plugin/index.ts @@ -1,125 +1,140 @@ -import type { Node } from 'unist'; -import { visit } from 'unist-util-visit'; - +import type { Node } from "unist"; +import { visit } from "unist-util-visit"; function remark({ titleClass, detailsClass, summaryClass, - iframeClass + iframeClass, }: { - titleClass: string, - detailsClass: string, - summaryClass: string, - iframeClass: string, + titleClass: string; + detailsClass: string; + summaryClass: string; + iframeClass: string; }) { return () => { - return (tree: Node) => { - let contentsHtml = ''; + let contentsHtml = ""; let lastNodeDepth = 100; let ulDepth = 0; let startingUlDepth = 0; let contentsHeadingParent = null; let contentsHeadingIndex = 0; - visit(tree, 'heading', (node: any, index: number, parent: any) => { + visit(tree, "heading", (node: any, index: number, parent: any) => { if (!node.children || node.children.length !== 1) return; const textNode = node.children[0]; - if (textNode.type === 'text' && textNode.value === 'Contents') { + if (textNode.type === "text" && textNode.value === "Contents") { contentsHeadingParent = parent; contentsHeadingIndex = index; return; } - const id = textNode.value.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9\-_\.]/g, ''); + const id = textNode.value + .toLowerCase() + .replace(/\s+/g, "-") + .replace(/[^a-z0-9\-_\.]/g, ""); node.id = id; if (contentsHtml.length === 0) { - contentsHtml += '
      '; + contentsHtml += "
        "; ulDepth = node.depth; startingUlDepth = node.depth; lastNodeDepth = node.depth; } if (node.depth === lastNodeDepth) { - contentsHtml += '
      • '; + contentsHtml += "
      • "; contentsHtml += `${textNode.value}`; - contentsHtml += '
      • '; + contentsHtml += ""; } if (node.depth > lastNodeDepth) { - contentsHtml += '
          '.repeat(node.depth - lastNodeDepth); - contentsHtml += '
        • '; + contentsHtml += "
            ".repeat(node.depth - lastNodeDepth); + contentsHtml += "
          • "; contentsHtml += `${textNode.value}`; - contentsHtml += '
          • '; + contentsHtml += ""; lastNodeDepth = node.depth; } if (node.depth < lastNodeDepth) { - contentsHtml += '
          '.repeat(lastNodeDepth - node.depth); - contentsHtml += '
        • '; + contentsHtml += "
        ".repeat(lastNodeDepth - node.depth); + contentsHtml += "
      • "; contentsHtml += `${textNode.value}`; - contentsHtml += '
      • '; + contentsHtml += ""; lastNodeDepth = node.depth; } }); if (contentsHtml.length !== 0) { - contentsHtml += '
      '.repeat(ulDepth - startingUlDepth + 1); + contentsHtml += "
    ".repeat(ulDepth - startingUlDepth + 1); } if (contentsHeadingParent !== null) { - (contentsHeadingParent as any).children.splice(contentsHeadingIndex + 1, 0, { - type: 'html', - value: contentsHtml, - }); + (contentsHeadingParent as any).children.splice( + contentsHeadingIndex + 1, + 0, + { + type: "html", + value: contentsHtml, + }, + ); } - visit(tree, 'paragraph', (node: any, index: number, parent: any) => { + visit(tree, "paragraph", (node: any, index: number, parent: any) => { if (!node.children || node.children.length !== 1) return; const textNode = node.children[0]; // non h title rule - if (textNode.type === 'text' && textNode.value.startsWith('::title ')) { - const titleText = textNode.value.substring('::title '.length); + if (textNode.type === "text" && textNode.value.startsWith("::title ")) { + const titleText = textNode.value.substring("::title ".length); const titleNode = { - type: 'html', - value: `

    ${titleText}

    ` + type: "html", + value: `

    ${titleText}

    `, }; parent.children.splice(index, 1, titleNode); } - if (textNode.type === 'text' && textNode.value.startsWith('::details ')) { - const summaryText = textNode.value.substring('::details '.length); + if ( + textNode.type === "text" && + textNode.value.startsWith("::details ") + ) { + const summaryText = textNode.value.substring("::details ".length); const node = { - type: 'html', - value: `
    ${summaryText}` + type: "html", + value: `
    ${summaryText}`, }; parent.children.splice(index, 1, node); } - if (textNode.type === 'text' && textNode.value.startsWith('::enddetails')) { + if ( + textNode.type === "text" && + textNode.value.startsWith("::enddetails") + ) { const node = { - type: 'html', - value: `
    ` + type: "html", + value: `
    `, }; parent.children.splice(index, 1, node); } - if (textNode.type === 'text' && textNode.value.startsWith('::iframe ')) { - const iframeSrc = textNode.value.substring('::iframe '.length); + if ( + textNode.type === "text" && + textNode.value.startsWith("::iframe ") + ) { + const iframeSrc = textNode.value.substring("::iframe ".length); const iframeNode = { - type: 'html', - value: `` + type: "html", + value: ``, }; parent.children.splice(index, 1, iframeNode); } }); - visit(tree, 'link', (node: any) => { - const isExternal = /^https?:\/\//i.test(node.url) || /^\/\//.test(node.url); + visit(tree, "link", (node: any) => { + const isExternal = + /^https?:\/\//i.test(node.url) || /^\/\//.test(node.url); if (!isExternal) return; @@ -131,8 +146,8 @@ function remark({ node.data.hProperties = {}; } - node.data.hProperties.target = '_blank'; - node.data.hProperties.rel = 'noopener noreferrer'; + node.data.hProperties.target = "_blank"; + node.data.hProperties.rel = "noopener noreferrer"; }); }; }; From f205d51aecf94022b4d38fec1f8dfcae3d1eee7a Mon Sep 17 00:00:00 2001 From: gloria Date: Thu, 28 Aug 2025 14:20:54 +0200 Subject: [PATCH 2/5] chore: upgrade prettier --- bun.lock | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bun.lock b/bun.lock index 455337b1..559c138d 100644 --- a/bun.lock +++ b/bun.lock @@ -4,7 +4,7 @@ "": { "name": "web", "dependencies": { - "prettier": "^3.4.2", + "prettier": "^3.6.2", "prettier-plugin-astro": "^0.14.1", }, "devDependencies": { diff --git a/package.json b/package.json index 568621fd..cf7ec7e8 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "build": "turbo build", "dev": "turbo dev", "lint": "turbo lint", - "format": "prettier --write \"**/*.{ts,tsx,md}\"" + "format": "prettier --write \"**/*.{ts,tsx,astro}\"" }, "devDependencies": { "turbo": "^2.5.5" @@ -19,7 +19,7 @@ "packages/*" ], "dependencies": { - "prettier": "^3.4.2", + "prettier": "^3.6.2", "prettier-plugin-astro": "^0.14.1" } } From bc5c96635db127ef9374f69848ba2e3a5a439710 Mon Sep 17 00:00:00 2001 From: gloria Date: Thu, 28 Aug 2025 14:21:06 +0200 Subject: [PATCH 3/5] chore: format astro files --- apps/website/src/components/Avatar.astro | 2 +- .../src/components/BookACallForm.astro | 5 +- apps/website/src/components/Field.astro | 6 +- apps/website/src/components/Pill.astro | 2 +- apps/website/src/components/Values.astro | 2 +- apps/website/src/components/cto/Hero.astro | 5 +- .../src/components/cto/InfoBlock.astro | 7 +- .../src/components/cto/ServiceBlock.astro | 53 ++- .../src/components/cto/Testimonial.astro | 2 +- apps/website/src/components/cto/Values.astro | 11 +- apps/website/src/components/footer.astro | 11 +- apps/website/src/components/navigation.astro | 12 +- apps/website/src/components/testimonial.astro | 7 +- apps/website/src/layouts/base-meta-tags.astro | 10 +- apps/website/src/layouts/content.astro | 4 +- apps/website/src/layouts/header.astro | 2 +- apps/website/src/layouts/jsonld-meta.astro | 4 +- apps/website/src/pages/for-ctos.astro | 5 +- .../src/pages/staff-augmentation.astro | 349 +++++++++++++----- 19 files changed, 363 insertions(+), 136 deletions(-) diff --git a/apps/website/src/components/Avatar.astro b/apps/website/src/components/Avatar.astro index 961d4c39..05f7eb61 100644 --- a/apps/website/src/components/Avatar.astro +++ b/apps/website/src/components/Avatar.astro @@ -6,7 +6,7 @@ const optimizedImage = await getImage({ src: image.default, width: 72, height: 72, - format: 'webp' + format: "webp", }); --- diff --git a/apps/website/src/components/BookACallForm.astro b/apps/website/src/components/BookACallForm.astro index e52a4bbc..bce582a6 100644 --- a/apps/website/src/components/BookACallForm.astro +++ b/apps/website/src/components/BookACallForm.astro @@ -11,10 +11,7 @@ export interface Props { eventType?: string; } -const { - calLink = "team/crocoder/hello", - eventType = "hello", -} = Astro.props; +const { calLink = "team/crocoder/hello", eventType = "hello" } = Astro.props; --- diff --git a/apps/website/src/components/Field.astro b/apps/website/src/components/Field.astro index 0bafef87..af82df95 100644 --- a/apps/website/src/components/Field.astro +++ b/apps/website/src/components/Field.astro @@ -41,7 +41,7 @@ const { classNames, labelProps, label, errorText } = Astro.props; { "after:h-[46px]": !Astro.props.isTextArea, "after:h-[139px] after:max-h-[139px]": Astro.props.isTextArea, - } + }, )} > { @@ -83,7 +83,7 @@ const { classNames, labelProps, label, errorText } = Astro.props; focus:border-transparent text-secondary `, - Astro.props.textAreaProps.class + Astro.props.textAreaProps.class, )} {...Astro.props.textAreaProps} /> @@ -133,7 +133,7 @@ const { classNames, labelProps, label, errorText } = Astro.props; { "h-[48px] top-[23px]": !Astro.props.isTextArea, "h-[142px] top-[23px]": Astro.props.isTextArea, - } + }, )} >
diff --git a/apps/website/src/components/Pill.astro b/apps/website/src/components/Pill.astro index 1de01c07..3a1f41c5 100644 --- a/apps/website/src/components/Pill.astro +++ b/apps/website/src/components/Pill.astro @@ -7,7 +7,7 @@ const { className } = Astro.props;
diff --git a/apps/website/src/components/Values.astro b/apps/website/src/components/Values.astro index 26f102a8..576caeb8 100644 --- a/apps/website/src/components/Values.astro +++ b/apps/website/src/components/Values.astro @@ -30,7 +30,7 @@ const { src } = await getImage({ src: bgImage, alt: "", width: 1920, - format: 'avif', + format: "avif", }); --- diff --git a/apps/website/src/components/cto/Hero.astro b/apps/website/src/components/cto/Hero.astro index 5a920873..c6fc4845 100644 --- a/apps/website/src/components/cto/Hero.astro +++ b/apps/website/src/components/cto/Hero.astro @@ -32,7 +32,8 @@ import heroImage from "../../assets/cto-hero.png";

- A Web Development Consultancy Helping CTOs Minimize Their Hands-on Involvement in Daily Operations + A Web Development Consultancy Helping CTOs Minimize Their Hands-on + Involvement in Daily Operations

const bookACallActionHero = document.getElementById( - "book-a-call-action-hero" + "book-a-call-action-hero", ); function handleBookACallHero() { diff --git a/apps/website/src/components/cto/InfoBlock.astro b/apps/website/src/components/cto/InfoBlock.astro index a21a7d00..81a8f90d 100644 --- a/apps/website/src/components/cto/InfoBlock.astro +++ b/apps/website/src/components/cto/InfoBlock.astro @@ -5,7 +5,12 @@ const { icon, title, description, className } = Astro.props; ---
- +

diff --git a/apps/website/src/components/cto/ServiceBlock.astro b/apps/website/src/components/cto/ServiceBlock.astro index 447fdd4a..34d04251 100644 --- a/apps/website/src/components/cto/ServiceBlock.astro +++ b/apps/website/src/components/cto/ServiceBlock.astro @@ -1,19 +1,43 @@ --- import classnames from "classnames"; -const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, descriptionFirst, descriptionSecond, classNames } = Astro.props; +const { + image, + iconFirst, + iconSecond, + sectionTitle, + titleFirst, + titleSecond, + descriptionFirst, + descriptionSecond, + classNames, +} = Astro.props; --- -
+
-

+

{sectionTitle}

- -

+ +

{titleFirst}

@@ -21,8 +45,15 @@ const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, des
- -

+ +

{titleSecond}

@@ -31,7 +62,9 @@ const { image, iconFirst, iconSecond, sectionTitle, titleFirst, titleSecond, des
- CroCoder team member illustration + CroCoder team member illustration
diff --git a/apps/website/src/components/cto/Testimonial.astro b/apps/website/src/components/cto/Testimonial.astro index 24b07c79..86c8e06d 100644 --- a/apps/website/src/components/cto/Testimonial.astro +++ b/apps/website/src/components/cto/Testimonial.astro @@ -7,7 +7,7 @@ import raphaelBauerBubble from "../../assets/raphael-bauer-bubble.png"; const optimizedTestimonial = await getImage({ src: raphaelBauerBubble, width: 569, - height: 547 + height: 547, }); --- diff --git a/apps/website/src/components/cto/Values.astro b/apps/website/src/components/cto/Values.astro index eaeadd20..a65916ee 100644 --- a/apps/website/src/components/cto/Values.astro +++ b/apps/website/src/components/cto/Values.astro @@ -11,13 +11,13 @@ import douglasIcon from "../../assets/douglas-icon.png"; const optimizedDouglasIcon = await getImage({ src: douglasIcon, width: 72, - height: 72 + height: 72, }); const optimizedTeamsImage = await getImage({ src: teamsImage, width: 560, - height: 326 + height: 326, }); --- @@ -114,7 +114,12 @@ const optimizedTeamsImage = await getImage({ making process. Working with them is easy. They are organised, communicative, and have a great internal culture.

- +
For CTOs - Staff AugmentationStaff Augmentation Blog @@ -117,8 +118,8 @@ const copyright = ` The content and information provided on this website are intended solely for marketing and promotional purposes. This website is a collaborative platform representing the interests of both CroCoder, Inc. and Abram - d.o.o. Please be advised that the materials and information available - on this site are designed to promote the products, services, and + d.o.o. Please be advised that the materials and information available on + this site are designed to promote the products, services, and initiatives of the aforementioned companies.

diff --git a/apps/website/src/components/navigation.astro b/apps/website/src/components/navigation.astro index 345b3937..33450013 100644 --- a/apps/website/src/components/navigation.astro +++ b/apps/website/src/components/navigation.astro @@ -10,7 +10,7 @@ const optimizedLogo = await getImage({ format: "webp", }); -const isContact = Astro.url.pathname === "/contact" +const isContact = Astro.url.pathname === "/contact"; ---