feat(mobile): add QrTemplate3 Pizzeria, fix PDF export for component system

This commit is contained in:
AyrisAI
2026-08-21 00:25:44 +03:00
parent ccd8c90267
commit 8481a34e61
8 changed files with 1514 additions and 73 deletions
@@ -0,0 +1,213 @@
import * as React from "react";
import Svg, {
SvgProps,
Path,
Rect,
Circle,
G,
Text,
Image,
} from "react-native-svg";
interface QrTemplateLumiereProps extends SvgProps {
qrBase64?: string;
}
const QrTemplateLumiere = ({ qrBase64, ...props }: QrTemplateLumiereProps) => (
<Svg
viewBox="0 0 600 600"
width={300}
height={300}
{...props}
>
<Path fill="#0b0d13" d="M0 0h600v600H0z" />
<Rect
width={560}
height={560}
x={20}
y={20}
fill="#132034"
stroke="#d4af37"
strokeWidth={1.5}
rx={24}
/>
<Path
fill="none"
stroke="#d4af37"
strokeOpacity={0.85}
strokeWidth={1.5}
d="M56 40h488a16 16 0 0 1 16 16v488a16 16 0 0 1-16 16H56a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16Z"
/>
<Rect
width={504}
height={504}
x={48}
y={48}
fill="none"
stroke="#c5a059"
strokeOpacity={0.45}
strokeWidth={0.8}
rx={8}
/>
{/* Köşe süslemeleri */}
<Path
fill="none"
stroke="#d4af37"
strokeWidth={1.5}
d="M40 68a18 18 0 0 0 28-28"
/>
<Circle cx={52} cy={52} r={2} fill="#d4af37" />
<Path
fill="none"
stroke="#d4af37"
strokeWidth={1.5}
d="M560 68a18 18 0 0 1-28-28"
/>
<Circle cx={548} cy={52} r={2} fill="#d4af37" />
<Path
fill="none"
stroke="#d4af37"
strokeWidth={1.5}
d="M40 532a18 18 0 0 1 28 28"
/>
<Circle cx={52} cy={548} r={2} fill="#d4af37" />
<Path
fill="none"
stroke="#d4af37"
strokeWidth={1.5}
d="M560 532a18 18 0 0 0-28 28"
/>
<Circle cx={548} cy={548} r={2} fill="#d4af37" />
{/* Merkez amblem */}
<G transform="translate(300 85)">
<Path
fill="none"
stroke="#d4af37"
strokeLinejoin="round"
strokeWidth={2}
d="M0-26C-8-16-8-6 0 0c8-6 8-16 0-26Z"
/>
<Path fill="#d4af37" d="M0-18C-4-12-4-4 0 0c4-4 4-12 0-18" />
<Path
fill="none"
stroke="#d4af37"
strokeLinejoin="round"
strokeWidth={2}
d="M-3 3c-13-2-25 7-21 21C-12 24-3 12-3 3Zm6 0c13-2 25 7 21 21C12 24 3 12 3 3Z"
/>
<Circle cy={10} r={1.8} fill="#d4af37" />
</G>
{/* Yatay çizgi */}
<Path
stroke="#d4af37"
strokeOpacity={0.4}
strokeWidth={0.8}
d="M120 198h360"
/>
{/* QR Placeholder / Gerçek QR */}
<G transform="translate(190 215)">
<Rect
width={220}
height={220}
fill="#fff"
stroke="#d4af37"
strokeWidth={2}
rx={20}
/>
{qrBase64 ? (
<Image
href={`data:image/png;base64,${qrBase64}`}
x={10}
y={10}
width={200}
height={200}
/>
) : (
<>
<Rect
width={196}
height={196}
x={12}
y={12}
fill="#fafafa"
stroke="#d4af37"
strokeDasharray="4 3"
strokeOpacity={0.4}
rx={14}
/>
<Text
x={110}
y={115}
fill="#71717a"
fontFamily="Inter, Arial, sans-serif"
fontSize={12}
fontWeight={600}
textAnchor="middle"
>
{"QR KOD ALANI"}
</Text>
</>
)}
</G>
{/* Metinler */}
<G textAnchor="middle">
<Text
x={300}
y={152}
fill="#d4af37"
fontFamily="'Playfair Display', 'Cinzel', 'Didot', Georgia, serif"
fontSize={38}
fontWeight={500}
letterSpacing={6}
>
{"LUMI\xC8RE"}
</Text>
<Text
x={300}
y={180}
fill="#e5c378"
fontFamily="Inter, Arial, sans-serif"
fontSize={11}
fontWeight={600}
letterSpacing={4}
>
{"RESTAURANT & BAR | MODERN CUISINE"}
</Text>
<Text
x={300}
y={472}
fill="#d4af37"
fontFamily="Inter, Arial, sans-serif"
fontSize={13}
fontWeight={600}
letterSpacing={3}
>
{"SCAN WITH CAMERA"}
</Text>
<Text
x={300}
y={508}
fill="#e2ddd2"
fontFamily="Inter, Arial, sans-serif"
fontSize={10.5}
fontWeight={400}
letterSpacing={1.2}
>
{"Reservations: LumiereDining.com | 240-555-0199"}
</Text>
<Text
x={300}
y={528}
fill="#c5a059"
fontFamily="Inter, Arial, sans-serif"
fontSize={9.5}
fontWeight={500}
letterSpacing={1.8}
>
{"TABLE 01 \u2022 WIFI: Lumiere_Guest"}
</Text>
</G>
</Svg>
);
export default QrTemplateLumiere;