summaryrefslogtreecommitdiff
path: root/src/components/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/widgets')
-rw-r--r--src/components/widgets/ContactHeader.astro73
-rw-r--r--src/components/widgets/Map.astro88
2 files changed, 147 insertions, 14 deletions
diff --git a/src/components/widgets/ContactHeader.astro b/src/components/widgets/ContactHeader.astro
new file mode 100644
index 0000000..e3433b1
--- /dev/null
+++ b/src/components/widgets/ContactHeader.astro
@@ -0,0 +1,73 @@
+---
+// ContactHeader - A simple header component with phone number and social media links
+// This is different from the main navigation Header component
+import { Icon } from 'astro-icon/components';
+import { SITE } from 'astrowind:config';
+
+interface Link {
+ text?: string;
+ href?: string;
+ ariaLabel?: string;
+ icon?: string;
+}
+
+interface Links {
+ text?: string;
+ href?: string;
+ links?: Array<Link>;
+}
+
+export interface ContactHeaderProps {
+ links?: Array<Links>;
+ actions?: Array<Link>;
+ isSticky?: boolean;
+ showRssFeed?: boolean;
+ showToggleTheme?: boolean;
+ position?: string;
+}
+
+const { isSticky = false } = Astro.props;
+---
+
+<header
+ id="header"
+ class="bg-black text-white py-2 px-4 relative z-50"
+ {...isSticky ? { 'data-aw-sticky-header': '' } : {}}
+>
+ <div class="max-w-7xl mx-auto flex items-center justify-between">
+ <div class="flex items-center space-x-2">
+ <Icon name="tabler:phone" class="w-4 h-4" />
+ <a href="tel:+48790209770" class="text-sm font-medium hover:text-gray-300 transition-colors cursor-pointer">
+ +48 790-209-770
+ </a>
+ </div>
+ {
+ SITE.social && (SITE.social.facebook || SITE.social.instagram) && (
+ <div class="flex items-center space-x-3">
+ {SITE.social.facebook && (
+ <a
+ href={SITE.social.facebook}
+ aria-label="Facebook"
+ class="text-white hover:text-gray-300 transition-colors cursor-pointer"
+ target="_blank"
+ rel="noopener noreferrer"
+ >
+ <Icon name="tabler:brand-facebook" class="w-4 h-4" />
+ </a>
+ )}
+ {SITE.social.instagram && (
+ <a
+ href={SITE.social.instagram}
+ aria-label="Instagram"
+ class="text-white hover:text-gray-300 transition-colors cursor-pointer"
+ target="_blank"
+ rel="noopener noreferrer"
+ >
+ <Icon name="tabler:brand-instagram" class="w-4 h-4" />
+ </a>
+ )}
+ </div>
+ )
+ }
+ </div>
+</header>
diff --git a/src/components/widgets/Map.astro b/src/components/widgets/Map.astro
index 76d81a4..ec36669 100644
--- a/src/components/widgets/Map.astro
+++ b/src/components/widgets/Map.astro
@@ -24,8 +24,8 @@ const coordinates = {
lon: lon,
};
-// Create map URL with proper coordinates
-const mapUrl = `https://www.openstreetmap.org/export/embed.html?bbox=${coordinates.lon - 0.01},${coordinates.lat - 0.01},${coordinates.lon + 0.01},${coordinates.lat + 0.01}&layer=mapnik&marker=${coordinates.lat},${coordinates.lon}`;
+// Create map URL with proper coordinates and disabled scroll wheel zoom
+const mapUrl = `https://www.openstreetmap.org/export/embed.html?bbox=${coordinates.lon - 0.01},${coordinates.lat - 0.01},${coordinates.lon + 0.01},${coordinates.lat + 0.01}&layer=mapnik&marker=${coordinates.lat},${coordinates.lon}&scrollWheelZoom=false`;
---
<WidgetWrapper id={id} isDark={isDark} containerClass={`max-w-7xl mx-auto ${classes?.container ?? ''}`} bg={bg}>
@@ -33,18 +33,78 @@ const mapUrl = `https://www.openstreetmap.org/export/embed.html?bbox=${coordinat
<div class="mx-auto max-w-7xl p-4 md:px-8">
<div class="relative overflow-hidden rounded-lg shadow-xl dark:shadow-none dark:border dark:border-slate-600">
- <iframe
- width="100%"
- height={height}
- frameborder="0"
- scrolling="no"
- marginheight="0"
- marginwidth="0"
- src={mapUrl}
- title="Mapa lokalizacji CustomWorks"
- class="w-full"
- >
- </iframe>
+ <div class="relative" id="map-container">
+ <iframe
+ width="100%"
+ height={height}
+ frameborder="0"
+ scrolling="no"
+ marginheight="0"
+ marginwidth="0"
+ src={mapUrl}
+ title="Mapa lokalizacji CustomWorks"
+ class="w-full"
+ id="map-iframe"
+ >
+ </iframe>
+ <script>
+ // Disable scroll wheel zoom on the map iframe
+ document.addEventListener('DOMContentLoaded', function () {
+ const mapContainer = document.getElementById('map-container');
+ const mapIframe = document.getElementById('map-iframe');
+
+ if (mapContainer && mapIframe) {
+ // Prevent scroll wheel events from reaching the iframe
+ mapContainer.addEventListener(
+ 'wheel',
+ function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ },
+ { passive: false }
+ );
+
+ // Also prevent touch events that might cause zoom
+ mapContainer.addEventListener(
+ 'touchstart',
+ function (e) {
+ // Only prevent if it's a pinch gesture (multiple touches)
+ if (e.touches.length > 1) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ },
+ { passive: false }
+ );
+
+ // Prevent pinch zoom
+ mapContainer.addEventListener(
+ 'gesturestart',
+ function (e) {
+ e.preventDefault();
+ },
+ { passive: false }
+ );
+
+ mapContainer.addEventListener(
+ 'gesturechange',
+ function (e) {
+ e.preventDefault();
+ },
+ { passive: false }
+ );
+
+ mapContainer.addEventListener(
+ 'gestureend',
+ function (e) {
+ e.preventDefault();
+ },
+ { passive: false }
+ );
+ }
+ });
+ </script>
+ </div>
<div class="absolute bottom-4 right-4">
<a
href={`https://www.openstreetmap.org/search?query=${encodeURIComponent(location)}`}