Commit Graph
90 Commits
Author SHA1 Message Date
AyrisAI d00b45ce72 feat(mobile): integrate QrTemplate9 Vintage Table Menu with 9.jpeg background and live editing 2026-08-21 01:19:04 +03:00
AyrisAI 102a9a744b feat(mobile): integrate QrTemplate8 Emerald & Gold Special with 8.jpeg background and live editing 2026-08-21 01:10:40 +03:00
AyrisAI b0645c0ac3 feat(mobile): replace blocking modal with inline live inspector for instantaneous visual editing feedback 2026-08-21 01:04:03 +03:00
AyrisAI 2c3599839b feat(mobile): add QrTemplate6 Stonehearth Grill, modal text editor and vertical positioning (offsetY) controls 2026-08-21 01:00:29 +03:00
AyrisAI 2530ab4005 feat(mobile): add multiline text with Enter, per-text independent font selection and font size controls 2026-08-21 00:55:44 +03:00
AyrisAI b72846bd91 feat(mobile): integrate QrTemplate5 with 5.png background image and dynamic texts 2026-08-21 00:52:26 +03:00
AyrisAI d2846ed628 feat(mobile): add QrTemplate4 Crimson Petal, support full Turkish characters on all system fonts and templates 2026-08-21 00:41:16 +03:00
AyrisAI 4dbb68a73a feat(mobile): add full text editing, show/hide switches and font family selector for QR stands 2026-08-21 00:36:14 +03:00
AyrisAI 932c174b5f fix(mobile): resolve TSpan text overlapping in QrTemplate3 2026-08-21 00:31:17 +03:00
AyrisAI 34dd24eee2 feat(mobile): register QrTemplate2 Daily Grind and filter UI to active component templates 2026-08-21 00:30:14 +03:00
AyrisAI 8481a34e61 feat(mobile): add QrTemplate3 Pizzeria, fix PDF export for component system 2026-08-21 00:25:44 +03:00
AyrisAI ccd8c90267 fix(mobile): decode XML entities for react-native-svg text rendering 2026-08-21 00:07:43 +03:00
AyrisAI 3629f98855 fix(mobile): proper nested-g depth counting for qr-placeholder replacement 2026-08-21 00:06:03 +03:00
AyrisAI dd282f3987 fix(mobile): strip XML comments before SvgXml parse to fix closing tag error 2026-08-21 00:02:37 +03:00
AyrisAI 4236ddb5ee feat: re-integrate all SVGs from svg ornekleri/ fresh, add qr-6 2026-08-20 23:59:45 +03:00
AyrisAI c7e4832441 fix(mobile): do not mutate SVG attributes, only replace qr-placeholder group 2026-08-20 23:58:21 +03:00
AyrisAI fa50e73198 fix(mobile): inject QR directly into SVG XML for pixel-perfect placement 2026-08-20 23:56:37 +03:00
AyrisAI 808097377d feat(qr-stands): add qr-5 L'Atelier Bistro Fine Dining template 2026-08-20 23:50:30 +03:00
AyrisAI 6cde8dfb87 feat: sync qr presets and mobile rendering with svg/ directory 2026-08-20 23:43:58 +03:00
AyrisAI 01c9f5f195 feat(mobile): render exact SVG vector templates in mobile QR stand screen 2026-08-20 23:43:26 +03:00
AyrisAI f768b92873 feat(qr-stands): clean SVG template renderer with exact QR placement and no redundant overlays 2026-08-20 23:39:56 +03:00
AyrisAI eb0b5d1886 feat(qr-stands): add qr-2.svg preset from user code 2026-08-20 23:36:01 +03:00
AyrisAI 38fd0dd030 feat(qr-stands): activate user provided qr-1.svg and qr-4.svg 2026-08-20 23:34:57 +03:00
AyrisAI 18396f3b99 fix(qr-stands): restore exact user-provided qr-1.svg alongside qr-4.svg 2026-08-20 23:31:54 +03:00
AyrisAI edb7af9288 feat(qr-stands): add flat vector qr-1.svg urban preset 2026-08-20 23:30:04 +03:00
AyrisAI a0cb04b2c6 feat(qr-stands): set qr-4 as exclusive vector stand template 2026-08-20 23:25:19 +03:00
AyrisAI 4ce6505a4d feat(qr-stands): add custom-svg-3 preset with user provided SVG stand code 2026-08-20 19:03:18 +03:00
AyrisAI 8efb5a9ff6 fix: render true SVG template vector graphic as stand background 2026-08-20 18:55:21 +03:00
AyrisAI 0a2aae68db feat: add qr-2.svg template preset (Classic Bistro QR Stand 2) 2026-08-20 18:49:43 +03:00
AyrisAI 984a41d0e5 refactor: simplify QR stand presets to single urban qr-1.svg template 2026-08-20 18:44:44 +03:00
AyrisAI 04863c8a78 feat: add qr-1.svg template integration for QR stand generator 2026-08-20 18:43:15 +03:00
AyrisAI e63de8584d style(mobile): render 1:1 pixel-perfect Urban Burger tabletop plaque layout 2026-08-20 18:28:23 +03:00
AyrisAI 3a15dd15b9 feat(mobile): build native in-app QR Stand Generator with theme switcher & A5 PDF / PNG exporter 2026-08-20 18:25:20 +03:00
AyrisAI bf44bf3e9d fix(docker): resolve pnpm v10 ERR_PNPM_IGNORED_BUILDS in Dockerfile 2026-08-20 18:22:36 +03:00
AyrisAI d396cbb221 feat: implement Tabletop QR Stand Generator with high-res PNG and print-ready A5 PDF export 2026-08-20 18:16:49 +03:00
AyrisAI 54a27903c8 chore: remove confidence score step from AI menu scanner flow 2026-08-20 18:03:10 +03:00
AyrisAI 3f326fa407 feat: allow updating custom menu slug with format validation, uniqueness checking and active cache sync 2026-08-20 17:58:42 +03:00
AyrisAI e7d0bcc505 feat: implement DELETE /restaurants/:id endpoint and mobile UI danger zone for restaurant deletion 2026-08-20 17:44:55 +03:00
AyrisAI 5103322fa1 feat: dynamically fetch live Cloudflare SSL TXT verification records in GET /domains endpoint 2026-08-20 17:35:23 +03:00
AyrisAI 8adec100af feat: render CNAME and Cloudflare SSL TXT verification instructions with copy buttons in mobile app domain settings 2026-08-20 17:33:14 +03:00
AyrisAI 5cbd80326f feat: setup Supabase Storage bucket for restaurant assets and add mobile upload helper 2026-08-20 17:30:22 +03:00
AyrisAI 5122ec24fc fix: revert to stable Next.js 15 and add @swc/helpers to dependencies for Docker standalone runtime 2026-08-20 17:24:40 +03:00
AyrisAI b950a31e3b fix: move @import rule to top of globals.css to satisfy PostCSS specification 2026-08-20 17:20:22 +03:00
AyrisAI f2b2537cd0 chore: upgrade Next.js to latest in web app 2026-08-20 17:15:42 +03:00
AyrisAI 484c7ce113 fix: resolve TypeScript type mismatch error in fetchRestaurantBySlug 2026-08-20 17:12:32 +03:00
AyrisAI 067d65940f fix: fallback to basic select query when cover_url column is not present on production database 2026-08-20 17:10:19 +03:00
AyrisAI b7e128fb8c fix: resolve slug fallback rendering for demo/gusto-brasserie and add root [slug] routing 2026-08-20 17:05:45 +03:00
AyrisAI 6055130828 docs: record EAS env var and entitlement identifier bugs 2026-08-20 16:16:14 +03:00
AyrisAI bb4cd1b0fc fix(mobile): stop matching entitlement by hardcoded identifier string
RevenueCat's entitlement identifier contains U+2024 (ONE DOT LEADER),
not a plain period — "Menul.io Pro" never matched the real
"Menul⁚io Pro" key, so isProActive() stayed false even after a real
purchase (confirmed via a genuine sandbox trial that RevenueCat
recorded as active while the app kept showing "Ücretsiz plan").
RevenueCat's API doesn't allow renaming an entitlement's lookup_key
after creation (405), so fixed on our side instead: this app only
ever grants one entitlement, so "any active entitlement" == Pro,
no identifier string needed.
2026-08-20 16:15:44 +03:00
AyrisAI 102cc0781e fix(mobile): add missing RevenueCat key to EAS production build env
eas.json's production build profile hardcodes its own env block —
local apps/mobile/.env is never read by EAS cloud builds. The
RevenueCat public key was missing from that list, so every
production/TestFlight build compiled EXPO_PUBLIC_REVENUECAT_API_KEY
as undefined, making configurePurchases() silently no-op and every
later Purchases call throw "no singleton instance".
2026-08-20 15:57:40 +03:00