diff --git a/apps/mobile/assets/templates/5.png b/apps/mobile/assets/templates/5.png new file mode 100644 index 0000000..275d3b7 Binary files /dev/null and b/apps/mobile/assets/templates/5.png differ diff --git a/apps/mobile/src/components/qr-templates/QrTemplate5.tsx b/apps/mobile/src/components/qr-templates/QrTemplate5.tsx new file mode 100644 index 0000000..426b9c7 --- /dev/null +++ b/apps/mobile/src/components/qr-templates/QrTemplate5.tsx @@ -0,0 +1,188 @@ +import * as React from "react"; +import Svg, { + Image, + G, + Rect, + Path, + Text, +} from "react-native-svg"; +import type { QrTemplateProps } from "./index"; + +// eslint-disable-next-line @typescript-eslint/no-require-imports +const bgImage = require("../../../assets/templates/5.png"); + +const QrTemplate5 = ({ + qrBase64, + restaurantName = "THE URBAN FORK", + subtitle = "FRESH FLAVORS DAILY", + tableNo = "MASA NO: 01", + ctaText = "DİJİTAL MENÜYÜ GÖRÜNTÜLE", + wifiText = "WiFi: UrbanFork | Şifre: urban2026", + socialText = "@theurbanfork", + fontFamily = "System, -apple-system, Roboto, Arial, sans-serif", + showTableNo = true, + showSubtitle = true, + showCta = true, + showWifi = true, + showSocial = true, + ...props +}: QrTemplateProps) => ( + + {/* PNG Arka Plan */} + + + {/* QR Placeholder / Live QR */} + + + + {qrBase64 ? ( + + ) : ( + <> + + + {"QR KOD ALANI"} + + + )} + + + {/* Metinler */} + + {/* Masa Numarası */} + {showTableNo && tableNo ? ( + + {tableNo} + + ) : null} + + {/* Restoran Başlığı */} + {restaurantName ? ( + + {restaurantName} + + ) : null} + + {/* Yönlendirme (CTA) */} + {showCta && ctaText ? ( + + {ctaText} + + ) : null} + + {/* Slogan */} + {showSubtitle && subtitle ? ( + + {subtitle} + + ) : null} + + {/* WiFi */} + {showWifi && wifiText ? ( + + {wifiText} + + ) : null} + + {/* Sosyal Medya */} + {showSocial && socialText ? ( + + {socialText} + + ) : null} + + +); + +export default QrTemplate5; diff --git a/apps/mobile/src/components/qr-templates/index.ts b/apps/mobile/src/components/qr-templates/index.ts index 0a6ac47..8bc22f3 100644 --- a/apps/mobile/src/components/qr-templates/index.ts +++ b/apps/mobile/src/components/qr-templates/index.ts @@ -4,6 +4,7 @@ import QrTemplate1 from "./QrTemplateLumiere"; import QrTemplate2 from "./QrTemplate2"; import QrTemplate3 from "./QrTemplate3"; import QrTemplate4 from "./QrTemplate4"; +import QrTemplate5 from "./QrTemplate5"; export interface QrCustomTextConfig { restaurantName?: string; @@ -63,6 +64,7 @@ export const COMPONENT_TEMPLATES: Record< "qr-2": QrTemplate2, "qr-3": QrTemplate3, "qr-4": QrTemplate4, + "qr-5": QrTemplate5, }; // Her template'in aspect ratio'su (width/height) @@ -71,4 +73,5 @@ export const TEMPLATE_ASPECT_RATIOS: Record = { "qr-2": 400 / 650, // 400x650 = standart kart "qr-3": 400 / 650, // 400x650 = standart kart "qr-4": 400 / 580, // 400x580 = zarif altın çerçeve + "qr-5": 380 / 500, // 380x500 = PNG arka planlı modern kart }; diff --git a/apps/mobile/svgcomponentlist/5.png b/apps/mobile/svgcomponentlist/5.png new file mode 100644 index 0000000..275d3b7 Binary files /dev/null and b/apps/mobile/svgcomponentlist/5.png differ diff --git a/apps/mobile/svgcomponentlist/5.tsx b/apps/mobile/svgcomponentlist/5.tsx new file mode 100644 index 0000000..e8be891 --- /dev/null +++ b/apps/mobile/svgcomponentlist/5.tsx @@ -0,0 +1,156 @@ +import Svg, { SvgProps, Image, G, Rect, Path, Text } from "react-native-svg" +import { memo } from "react" +const SvgComponent = (props: SvgProps) => ( + + + + + + + + {"QR KOD ALANI"} + + + + + {"THE"} + + + {"URBAN"} + + + {"FORK"} + + + {"SCAN TO VIEW"} + + + {"DIGITAL MENU"} + + + {"FRESH FLAVORS DAILY"} + + + {"Contactless ordering to scancnal bresers"} + + + {"and enstand mes with your menu."} + + + {"contactless ordering"} + + + {"scan with camera"} + + + +) +const Memo = memo(SvgComponent) +export default Memo diff --git a/packages/shared/src/qr-stands.ts b/packages/shared/src/qr-stands.ts index d1a85a5..bcf8363 100644 --- a/packages/shared/src/qr-stands.ts +++ b/packages/shared/src/qr-stands.ts @@ -76,4 +76,18 @@ export const QR_STAND_PRESETS: Record = { subText: "#71717a", dividerColor: "rgba(197, 155, 75, 0.3)", }, + "qr-5": { + key: "qr-5", + name: "The Urban Fork (QR-5)", + categoryName: "Özel Masa Kartı", + svgTemplateUrl: "/qr-5.svg", + aspectRatio: "380/500", + bgGradient: "radial-gradient(circle at 50% 50%, #e0f2fe 0%, #bae6fd 100%)", + plaqueColor: "#003554", + borderAccent: "#003554", + accentText: "#003554", + headerText: "#003554", + subText: "#0284c7", + dividerColor: "rgba(0, 53, 84, 0.3)", + }, };