diff --git a/.env.example b/.env.example
index c0f1740..326f506 100644
--- a/.env.example
+++ b/.env.example
@@ -1 +1,7 @@
VITE_GA_MEASUREMENT_ID=G-XXXXXXXXXX
+VITE_BC_NAME=XXX XXXXXXX
+VITE_BC_POSITION=XXXXXXXXXX
+VITE_BC_VAT=ITXXXXXXXXXX
+VITE_BC_PHONE=+39XXXXXXXXXX
+VITE_BC_EMAIL=XXXX@XXXX.XX
+VITE_BC_LINKEDIN=XXXXXXXXXX
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 66f27c5..4ee4c64 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -37,8 +37,27 @@ jobs:
node-version: 'lts/*'
cache: 'npm'
- - name: Set VITE_GA_MEASUREMENT_ID
- run: echo "VITE_GA_MEASUREMENT_ID=${{ secrets.VITE_GA_MEASUREMENT_ID }}" > .env
+ - name: Set environment variables
+ run: |
+ echo "VITE_GA_MEASUREMENT_ID=${{ secrets.VITE_GA_MEASUREMENT_ID }}" > .env
+ if [[ -n "${{ vars.VITE_BC_NAME }}" ]]; then
+ echo "VITE_BC_NAME=${{ vars.VITE_BC_NAME }}" >> .env
+ fi
+ if [[ -n "${{ vars.VITE_BC_POSITION }}" ]]; then
+ echo "VITE_BC_POSITION=${{ vars.VITE_BC_POSITION }}" >> .env
+ fi
+ if [[ -n "${{ vars.VITE_BC_VAT }}" ]]; then
+ echo "VITE_BC_VAT=${{ vars.VITE_BC_VAT }}" >> .env
+ fi
+ if [[ -n "${{ vars.VITE_BC_LINKEDIN }}" ]]; then
+ echo "VITE_BC_LINKEDIN=${{ vars.VITE_BC_LINKEDIN }}" >> .env
+ fi
+ if [[ -n "${{ secrets.VITE_BC_PHONE }}" ]]; then
+ echo "VITE_BC_PHONE=${{ secrets.VITE_BC_PHONE }}" >> .env
+ fi
+ if [[ -n "${{ secrets.VITE_BC_EMAIL }}" ]]; then
+ echo "VITE_BC_EMAIL=${{ secrets.VITE_BC_EMAIL }}" >> .env
+ fi
- name: Install dependencies
run: npm ci --omit=dev
diff --git a/public/images/qr.svg b/public/images/qr.svg
new file mode 100644
index 0000000..7470ba9
--- /dev/null
+++ b/public/images/qr.svg
@@ -0,0 +1,351 @@
+
+
diff --git a/src/App.tsx b/src/App.tsx
index a429bed..3b7fb4f 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -10,6 +10,7 @@ const ProjectsPage = React.lazy(() => import('components/pages/ProjectsPage/inde
const CurriculumPage = React.lazy(() => import('components/pages/CurriculumPage/index.js'))
const ContactPage = React.lazy(() => import('components/pages/ContactPage/index.js'))
const PrivacyPage = React.lazy(() => import('components/pages/PrivacyPage/index.js'))
+const BusinessCardPage = React.lazy(() => import('components/pages/BusinessCardPage/index.js'))
const router = createBrowserRouter([
{
@@ -57,6 +58,14 @@ const router = createBrowserRouter([
),
},
+ {
+ path: 'card',
+ element: (
+ }>
+
+
+ ),
+ },
],
},
])
diff --git a/src/components/molecules/CookieConsent/index.tsx b/src/components/molecules/CookieConsent/index.tsx
index 331dbed..bcd27c3 100644
--- a/src/components/molecules/CookieConsent/index.tsx
+++ b/src/components/molecules/CookieConsent/index.tsx
@@ -62,6 +62,9 @@ const CookieConsent = () => {
mb: theme.spacing(1),
p: theme.spacing(3),
zIndex: 9999,
+ '@media print': {
+ display: 'none',
+ },
})}>
diff --git a/src/components/molecules/CurriculumItem/CurriculumItem.tsx b/src/components/molecules/CurriculumItem/CurriculumItem.tsx
index 2192e1f..237921d 100644
--- a/src/components/molecules/CurriculumItem/CurriculumItem.tsx
+++ b/src/components/molecules/CurriculumItem/CurriculumItem.tsx
@@ -32,10 +32,16 @@ const CurriculumItem = (props: CurriculumEntryProps) => {
// '& .MuiAccordionSummary-expandIconWrapper .MuiSvgIcon-root': { color: 'primary.dark' }, // use summary hover icon color
},
'&.Mui-expanded': {
+ bgcolor: 'background.paper', // use summary hover background
borderBottom: '1px solid',
borderTop: '1px solid',
- bgcolor: 'background.paper', // use summary hover background
elevation: 1,
+ '@media print': {
+ bgcolor: 'background.default',
+ borderBottom: 0,
+ borderTop: 0,
+ elevation: 0,
+ },
// '& .MuiAccordionSummary-expandIconWrapper .MuiSvgIcon-root': { color: 'primary.dark' }, // use summary hover icon color
},
}}>
@@ -48,6 +54,9 @@ const CurriculumItem = (props: CurriculumEntryProps) => {
},
'& .MuiAccordionSummary-expandIconWrapper.Mui-expanded': {
transform: 'rotate(0deg)',
+ '@media print': {
+ transform: 'rotate(-90deg)',
+ },
},
'& .MuiAccordionSummary-content': {
marginLeft: 2,
diff --git a/src/components/molecules/Footer/index.tsx b/src/components/molecules/Footer/index.tsx
index a34a5de..ec145fc 100644
--- a/src/components/molecules/Footer/index.tsx
+++ b/src/components/molecules/Footer/index.tsx
@@ -14,7 +14,17 @@ type FooterProps = {
const Footer: React.FC = ({ showCookieConsent = true }) => {
const year = new Date().getFullYear()
return (
-
+