PageSourceSearch

https://niyyahcoffee.com/assets/js/data.js

js niyyahcoffee.com collected 2026-10-05 18:06:11 UTC 12,798 bytes, 323 lines download raw bytes

1/**
2 * Niyyah Coffee — site data layer (single source of truth).
3 *
4 * This is a frontend-only project, so this module stands in for a CMS/API.
5 * Every piece of editable business content (cafes, ordering links, menu,
6 * social links, FAQs, integration config) lives here so it can be managed in
7 * one place and extended as the brand grows — new cafes, markets, menu
8 * categories — without touching markup or behavior code.
9 *
10 *   • Add a cafe:      append to `cafes` (set `status` + `orderUrl`).
11 *   • Add a menu item: append to `menu.items` (set `category` + `availableLocations`).
12 *   • Change a link:   edit the single `orderUrl` for that cafe — never duplicated.
13 */
14(function (global) {
15  "use strict";
16
17  var IMG = "assets/img";
18
19  function mapsSearchUrl(address) {
20    return "https://www.google.com/maps/search/?api=1&query=" + encodeURIComponent(address);
21  }
22
23  /* Opens the verified Google Business listing (not a dropped pin). */
24  function mapsPlaceUrl(name, placeId, lat, lng, googleId) {
25    var label = encodeURIComponent(name || "Niyyah Coffee");
26    var gid = googleId ? "!16s%2Fg%2F" + googleId : "";
27    return (
28      "https://www.google.com/maps/place/" + label + "/@" + lat + "," + lng + ",17z/data=!3m1!4b1!4m6!3m5!1s" +
29      placeId + "!8m2!3d" + lat + "!4d" + lng + gid
30    );
31  }
32
33  function cafeMapUrl(cafe) {
34    if (cafe.mapsPlace) {
35      var p = cafe.mapsPlace;
36      return mapsPlaceUrl(p.name, p.placeId, p.lat, p.lng, p.googleId);
37    }
38    return mapsSearchUrl(cafe.address);
39  }
40
41  var DATA = {
42    brand: {
43      name: "Niyyah Coffee",
44      tagline: "Where Coffee Meets Intention.",
45      intro: "Specialty coffee roasted, brewed, and served with intention. Discover signature drinks, order from a cafe near you, and bring Niyyah to your next event.",
46      logo: IMG + "/niyyah-logo.png",
47      phone: { display: "(317) 379-6038", href: "tel:3173796038" },
48      email: "[email protected]",
49      intentionImage: IMG + "/the-name.jpg",
50      experienceImage: IMG + "/experience.jpg"
51    },
52
53    /* Reused EXACTLY as linked on the original niyyahcoffee.com site. */
54    social: {
55      instagram: "https://www.instagram.com/niyyahcoffee/",
56      instagramHandle: "@niyyahcoffee"
57    },
58
59    /*
60     * Instagram feed — preview vs live (see assets/js/instagram.js).
61     *   "preview" — real post permalinks below (no Meta token; static demo)
62     *   "live"    — server endpoint only (needs INSTAGRAM_ACCESS_TOKEN)
63     *   "auto"    — try live first, fall back to preview posts
64     * Swap to "live" once @niyyahcoffee authorizes the app.
65     */
66    config: {
67      defaultCafeRegion: "us",
68      showCafeRegionToggle: true,
69      /* auto = try live feed, fall back to real @niyyahcoffee preview embeds until OAuth is done */
70      instagramFeedMode: "auto",
71      /* Preview layout: "embed" (official Instagram widgets) or "grid" (link tiles). */
72      instagramPreviewStyle: "embed",
73      instagramEndpoint: "/api/instagram",
74      instagramPreviewNote:
75        "Showing recent posts — live auto-updating feed unlocks after @niyyahcoffee connects once."
76    },
77
78    /* Real @niyyahcoffee-owned post permalinks (fallback / preview). */
79    instagramPreviewPosts: [
80      { permalink: "https://www.instagram.com/p/DaVnybtlDdz/" },
81      { permalink: "https://www.instagram.com/p/DaTTU2cBuDJ/" },
82      { permalink: "https://www.instagram.com/p/DZ-7uGshK4D/" },
83      { permalink: "https://www.instagram.com/p/DZYT7czBE5h/" },
84      { permalink: "https://www.instagram.com/p/DWmBl3blPFu/" },
85      { permalink: "https://www.instagram.com/p/DWXHJFVAQpv/" }
86    ],
87
88    /*
89     * Fallback only — preferred source is Netlify Blobs, filled daily by
90     * cron-refresh-instagram-feed.mjs (Reels, image posts, carousel collabs).
91     * Optional fields: mediaType ("VIDEO" | "IMAGE" | "CAROUSEL_ALBUM"), caption, timestamp.
92     */
93    instagramCollabPosts: [
94      { permalink: "https://www.instagram.com/reel/DaVzp2qRcz8/", mediaType: "VIDEO" },
95      { permalink: "https://www.instagram.com/reel/DaRN6psIYCp/", mediaType: "VIDEO" },
96      { permalink: "https://www.instagram.com/reel/DaG-GpyxQC_/", mediaType: "VIDEO" }
97    ],
98
99    /*
100     * Cafes. SkyTab ordering URLs are mapped by name (never randomly).
101     * `status`: "open" cafes can order online; "coming-soon" cafes show a
102     * disabled ordering state until a real `orderUrl` is added.
103     *
104     * Photos are the real cafe images provided by the client.
105     * `hours`/`phone` are intentionally null (no verified data yet) and render
106     * as graceful fallbacks — populate when confirmed; never faked.
107     */
108    cafes: [
109      {
110        id: "hub-and-spoke",
111        name: "Hub & Spoke",
112        region: "us",
113        market: "Fishers, Indiana",
114        status: "open",
115        image: IMG + "/cafe-hub-and-spoke.jpg",
116        address: "8100 E 106th St, Fishers, IN 46038",
117        hours: null,
118        phone: null,
119        description: "Inside the Hub & Spoke building on 106th St. Plenty of seating, good light, and right off I-69.",
120        orderUrl: "https://online.skytab.com/09c19d8965a9388fb2d1994ec695e295/order-settings",
121        mapsPlace: {
122          name: "Niyyah Coffee",
123          placeId: "0x8814b32ba78cd749:0x4956a64d7329618c",
124          lat: 39.9412978,
125          lng: -86.0259463,
126          googleId: "11v0jmtqgb"
127        },
128        get mapUrl() { return cafeMapUrl(this); }
129      },
130      {
131        id: "broad-ripple",
132        name: "Broad Ripple",
133        region: "us",
134        market: "Indianapolis, Indiana",
135        status: "open",
136        image: IMG + "/cafe-broad-ripple.jpg",
137        address: "6160 N Rural St. Suite 1111, Indianapolis, IN 46220",
138        hours: null,
139        phone: null,
140        description: "Tucked inside the AYR Apartments at Glendale. Small and cozy — a solid spot for solo work or a quick catch-up.",
141        orderUrl: "https://online.skytab.com/2cfbaba9b169fece79575009acd56f50/order-settings",
142        mapsPlace: {
143          name: "Niyyah Coffee",
144          placeId: "0x886b5324746d3635:0x90f3418bc9800eb1",
145          lat: 39.867323,
146          lng: -86.1185051,
147          googleId: "11y86xt232"
148        },
149        get mapUrl() { return cafeMapUrl(this); }
150      },
151      {
152        id: "mccordsville",
153        name: "McCordsville",
154        region: "us",
155        market: "McCordsville, Indiana",
156        status: "open",
157        image: IMG + "/cafe-mccordsville.png",
158        address: "7441 N 600 W, McCordsville, IN 46055",
159        hours: null,
160        phone: null,
161        description: "Spacious and easy to find. Sit in, spread out, and stay a while.",
162        orderUrl: "https://online.skytab.com/168412b4cf74d6727e8c94ce13e742f1/order-settings",
163        mapsPlace: {
164          name: "Niyyah Coffee",
165          placeId: "0x886b355ccbffdb6f:0xaaba02c02bb4a8fa",
166          lat: 39.8907311,
167          lng: -85.9184082,
168          googleId: "11xv38b0fy"
169        },
170        get mapUrl() { return cafeMapUrl(this); }
171      },
172      {
173        id: "mass-ave",
174        name: "Mass Ave",
175        region: "us",
176        market: "Indianapolis, Indiana",
177        status: "open",
178        image: IMG + "/cafe-mass-ave.png",
179        address: "747 N College Ave, Suite B, Indianapolis, IN 46202",
180        hours: null,
181        phone: null,
182        description: "On the Mass Ave corridor near Bottleworks. Indianapolis's first deaf-owned coffee shop.",
183        orderUrl: "https://online.skytab.com/s/niyyahcoffeemassave",
184        mapsPlace: {
185          name: "Niyyah Coffee",
186          placeId: "0x886b513e8c785bf7:0xd59e53d659ee17c5",
187          lat: 39.7773467,
188          lng: -86.1449422,
189          googleId: "11zfsjzdph"
190        },
191        get mapUrl() { return cafeMapUrl(this); }
192      },
193      {
194        id: "fort-wayne",
195        name: "Fort Wayne",
196        region: "us",
197        market: "Fort Wayne, Indiana",
198        status: "coming-soon",
199        image: IMG + "/cafe-fort-wayne.jpg",
200        address: "202 W Berry St, Suite 110, Fort Wayne, IN 46802",
201        hours: null,
202        phone: null,
203        description: "Coming soon to downtown Fort Wayne on W Berry St. Details to follow as we get closer to opening.",
204        orderUrl: null,
205        get mapUrl() { return cafeMapUrl(this); }
206      },
207      {
208        id: "markham",
209        name: "Markham",
210        region: "ca",
211        market: "Markham, Ontario",
212        status: "open",
213        image: IMG + "/cafe-markham.png",
214        address: "3322 Bur Oak Avenue, Unit 110, Markham, Ontario L6B 1P4",
215        hours: null,
216        phone: null,
217        description: "Our first Canadian cafe — specialty coffee with intention in Markham, Ontario.",
218        orderUrl: "https://www.ubereats.com/store-browse-uuid/06321d1b-bd00-5484-896b-a347deec8f9b?diningMode=DELIVERY",
219        mapsPlace: {
220          name: "Niyyah Coffee Canada",
221          placeId: "0x89d4d7faaf368cb7:0x7f563a529d462c9b",
222          lat: 43.9025757,
223          lng: -79.2343168,
224          googleId: "11ynfbh4jl"
225        },
226        get mapUrl() { return cafeMapUrl(this); }
227      }
228    ],
229
230    pillars: [
231      {
232        title: "Focus",
233        icon: "focus",
234        text: "Quiet enough to actually get something done. Good wifi, good coffee, no pressure to leave."
235      },
236      {
237        title: "Meet",
238        icon: "meet",
239        text: "Low-key setting for a catch-up, a quick meeting, or a first date you're not sure about yet."
240      },
241      {
242        title: "Hangout",
243        icon: "hangout",
244        text: "No agenda. Come for the drink, stay as long as you want."
245      }
246    ],
247
248    /*
249     * Menu — only REAL items documented on niyyahcoffee.com are included
250     * (the brand's signature drinks). No prices/categories are invented.
251     * `availableLocations: "all"` means every open cafe serves it; otherwise
252     * provide an array of cafe ids. The full, current menu lives on SkyTab,
253     * which the section links to for ordering.
254     */
255    menu: {
256      categories: [
257        { id: "signature", label: "Signature", icon: "star" },
258        { id: "lattes", label: "Lattes", icon: "cup" },
259        { id: "chai", label: "Chai", icon: "leaf" }
260      ],
261      items: [
262        {
263          id: "zebra-latte",
264          name: "Zebra Latte",
265          category: "signature",
266          subcategory: "lattes",
267          description: "White and dark chocolate with a hint of vanilla. Rich, sweet, and one of our most ordered drinks.",
268          price: null,
269          image: IMG + "/menu-zebra-latte.png",
270          tags: ["Hot or Iced", "Chocolate"],
271          availableLocations: "all"
272        },
273        {
274          id: "brown-suga-shook",
275          name: "Brown Suga Shook",
276          category: "signature",
277          subcategory: "lattes",
278          description: "Espresso, brown sugar, vanilla, and cinnamon — shaken with ice until foamy. Guests keep coming back for this one.",
279          price: null,
280          image: IMG + "/menu-brown-suga-shook.png",
281          tags: ["Iced", "Shaken"],
282          availableLocations: "all"
283        },
284        {
285          id: "masala-chai",
286          name: "Authentic Masala Chai",
287          category: "signature",
288          subcategory: "chai",
289          description: "Homemade chai steeped with cardamom, fennel, and cinnamon. House-made, not from a powder.",
290          price: null,
291          image: IMG + "/menu-masala-chai.png",
292          tags: ["Hot or Iced", "House-made"],
293          availableLocations: "all"
294        }
295      ]
296    },
297
298    faqs: [
299      {
300        q: "How do I order online?",
301        a: "Pick a cafe in the Menu or Locations section, then tap “Order” — you'll be taken straight to that cafe's SkyTab ordering page for pickup."
302      },
303      {
304        q: "Where can I find Niyyah Coffee?",
305        a: "We're open in Fishers (Hub & Spoke), Broad Ripple, McCordsville, and Mass Ave in Indiana, plus Markham, Ontario — switch to Canada in Our Cafes to see Markham. Fort Wayne (202 W Berry St) is coming soon."
306      },
307      {
308        q: "Can you cater my event or pop up with the coffee cart?",
309        a: "Yes! Our coffee cart books for events of all sizes (2-hour minimum). Share your details through the “Book Our Cart” form and we'll follow up to plan it with you."
310      },
311      {
312        q: "What does “Niyyah” mean?",
313        a: "Niyyah (pronounced Nee-Yah) means “intention” in Arabic. It's our intention to create a warm, welcoming atmosphere where people of all backgrounds can come together over a great cup of coffee."
314      },
315      {
316        q: "What are your most popular drinks?",
317        a: "The Zebra Latte, Brown Suga Shook, and Masala Chai are always a good call. Check the Menu section to see what else we pour."
318      }
319    ]
320  };
321
322  global.NIYYAH = DATA;
323})(window);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.