{"ast":null,"code":"import { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nvar _jsxFileName = \"/home/gkkdzdg/www/src/pages/[lang]/[city].js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport cn from 'classnames';\nimport { ArrowDownButton } from 'components/gui/Arrow';\nimport BoxButton from 'components/gui/BoxButton';\nimport { CityStrip } from 'components/strips/Strip';\nimport VideoLoop from 'components/VideoLoop/VideoLoop';\nimport useLocale from 'contexts/useLocale';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport HTMLReactParser from 'html-react-parser';\nimport { getCitiesSlugs, getCityBySlug, getCityPage } from 'lib/api';\nimport { imageBuilder } from 'lib/sanity';\nimport CityMapSlice from 'slices/CityMapSlice/CityMapSlice';\nimport SliceIntro from 'slices/SliceIntro/SliceIntro';\nimport styles from './City.module.scss';\n\nconst CityPage = ({\n  lang,\n  slug,\n  title,\n  videos,\n  hero,\n  houses,\n  mapIntro,\n  open,\n  areas,\n  department,\n  housesCount,\n  availableCount,\n  searchPlaceholderShort,\n  searchPlaceholderLong\n}) => {\n  const locale = useLocale();\n  const backgroundImageURL = hero ? imageBuilder.image(hero.asset).url() : 'https://www.colivingfactory.com/assets/coresider/images/1.png';\n  const isDesktop = useIsDesktop();\n  const mapIntroStr = isDesktop ? mapIntro : mapIntro ? mapIntro.replace(':', '').trim() : '';\n  const searchPlaceholder = isDesktop ? searchPlaceholderLong : searchPlaceholderShort;\n  const housesCountHtml = locale(`houses-count`, housesCount).replace('#', `<span class='bold'>${housesCount}</span>`);\n  const availableCountHtml = locale(`available-accommodations`, availableCount).replace('#', `<span class='bold'>${availableCount}</span>`);\n  const housesAnchor = lang == 'fr' ? 'nos-habitations' : 'our-houses';\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: [/*#__PURE__*/_jsxDEV(\"section\", {\n      className: cn(styles.firstSlice),\n      style: {\n        backgroundImage: !videos && backgroundImageURL ? `url(${backgroundImageURL})` : undefined\n      },\n      children: [videos && /*#__PURE__*/_jsxDEV(VideoLoop, {\n        videos: videos\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 56,\n        columnNumber: 16\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: styles.firstSliceContent,\n        children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n          className: cn('h--1', styles.title),\n          children: title\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 61,\n          columnNumber: 6\n        }, this), areas && /*#__PURE__*/_jsxDEV(\"p\", {\n          className: cn('p--l', styles.area),\n          children: areas\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 63,\n          columnNumber: 16\n        }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n          className: cn('p--l'),\n          children: [HTMLReactParser(housesCountHtml), \",\"]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 64,\n          columnNumber: 6\n        }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n          className: cn('p--l'),\n          children: [HTMLReactParser(availableCountHtml), \".\"]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 65,\n          columnNumber: 6\n        }, this), isDesktop && /*#__PURE__*/_jsxDEV(BoxButton, {\n          className: cn(styles.boxButton),\n          label: 'Découvrir les habitations',\n          href: '#' + housesAnchor,\n          fullWidth: true,\n          icon: \"right\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 67,\n          columnNumber: 7\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 60,\n        columnNumber: 5\n      }, this), !isDesktop && /*#__PURE__*/_jsxDEV(ArrowDownButton, {\n        htmlText: 'Découvrir les habitations',\n        className: cn(styles.arrowDownCont),\n        href: '#' + housesAnchor,\n        color: 'white'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 77,\n        columnNumber: 20\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 50,\n      columnNumber: 4\n    }, this), houses && /*#__PURE__*/_jsxDEV(CityMapSlice, {\n      id: housesAnchor,\n      introText: mapIntroStr,\n      houses: houses,\n      searchPlaceholder: searchPlaceholder\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 86,\n      columnNumber: 5\n    }, this), isDesktop && /*#__PURE__*/_jsxDEV(SliceIntro, {\n      left: true\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 95,\n      columnNumber: 18\n    }, this)]\n  }, void 0, true);\n};\n\nexport async function getStaticProps({\n  params: {\n    lang,\n    city\n  },\n  preview = false,\n  previewData\n}) {\n  const cityPage = await getCityPage(lang, preview);\n  const props = await getCityBySlug(city, lang, preview);\n  return {\n    props: _objectSpread(_objectSpread(_objectSpread({}, cityPage), props), {}, {\n      lang,\n      preview\n    })\n  };\n}\nexport async function getStaticPaths() {\n  const cities = await getCitiesSlugs(); // console.log('[city].js::65 cities', cities)\n\n  return {\n    paths: cities.map(page => ({\n      params: page\n    })),\n    fallback: false\n  };\n}\nexport default CityPage;","map":{"version":3,"sources":["/home/gkkdzdg/www/src/pages/[lang]/[city].js"],"names":["cn","ArrowDownButton","BoxButton","CityStrip","VideoLoop","useLocale","useIsDesktop","HTMLReactParser","getCitiesSlugs","getCityBySlug","getCityPage","imageBuilder","CityMapSlice","SliceIntro","styles","CityPage","lang","slug","title","videos","hero","houses","mapIntro","open","areas","department","housesCount","availableCount","searchPlaceholderShort","searchPlaceholderLong","locale","backgroundImageURL","image","asset","url","isDesktop","mapIntroStr","replace","trim","searchPlaceholder","housesCountHtml","availableCountHtml","housesAnchor","firstSlice","backgroundImage","undefined","firstSliceContent","area","boxButton","arrowDownCont","getStaticProps","params","city","preview","previewData","cityPage","props","getStaticPaths","cities","paths","map","page","fallback"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport { ArrowDownButton } from 'components/gui/Arrow'\nimport BoxButton from 'components/gui/BoxButton'\nimport { CityStrip } from 'components/strips/Strip'\nimport VideoLoop from 'components/VideoLoop/VideoLoop'\nimport useLocale from 'contexts/useLocale'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport HTMLReactParser from 'html-react-parser'\nimport { getCitiesSlugs, getCityBySlug, getCityPage } from 'lib/api'\nimport { imageBuilder } from 'lib/sanity'\nimport CityMapSlice from 'slices/CityMapSlice/CityMapSlice'\nimport SliceIntro from 'slices/SliceIntro/SliceIntro'\nimport styles from './City.module.scss'\n\n\nconst CityPage = ({ lang, slug,\n\ttitle,\n\tvideos,\n\thero,\n\thouses,\n\tmapIntro,\n\topen,\n\tareas,\n\tdepartment,\n\thousesCount,\n\tavailableCount,\n\tsearchPlaceholderShort,\n\tsearchPlaceholderLong,\n}) => {\n\n\tconst locale = useLocale()\n\n\tconst backgroundImageURL = hero ? imageBuilder.image(hero.asset).url() : 'https://www.colivingfactory.com/assets/coresider/images/1.png'\n\n\tconst isDesktop = useIsDesktop()\n\n\tconst mapIntroStr = isDesktop ? mapIntro : mapIntro ? mapIntro.replace(':', '').trim() : ''\n\tconst searchPlaceholder = isDesktop ? searchPlaceholderLong : searchPlaceholderShort\n\n\tconst housesCountHtml = locale(`houses-count`, housesCount)\n\t\t.replace('#', `<span class='bold'>${housesCount}</span>`)\n\tconst availableCountHtml = locale(`available-accommodations`, availableCount)\n\t\t.replace('#', `<span class='bold'>${availableCount}</span>`)\n\n\tconst housesAnchor = lang == 'fr' ? 'nos-habitations' : 'our-houses'\n\n\treturn (\n\t\t<>\n\t\t\t<section\n\t\t\t\tclassName={cn(styles.firstSlice,)}\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundImage: (!videos && backgroundImageURL) ? `url(${backgroundImageURL})` : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{videos && <VideoLoop\n\t\t\t\t\tvideos={videos}\n\t\t\t\t/>}\n\n\t\t\t\t<div className={styles.firstSliceContent}>\n\t\t\t\t\t<h2 className={cn('h--1', styles.title)}>{title}</h2>\n\t\t\t\t\t{/* <p className={cn('p--m')}>{department}{!open && <><br />{'Ouvertures prochaines.'}</>}</p> */}\n\t\t\t\t\t{areas && <p className={cn('p--l', styles.area)}>{areas}</p>}\n\t\t\t\t\t<p className={cn('p--l')}>{HTMLReactParser(housesCountHtml)},</p>\n\t\t\t\t\t<p className={cn('p--l')}>{HTMLReactParser(availableCountHtml)}.</p>\n\t\t\t\t\t{isDesktop &&\n\t\t\t\t\t\t<BoxButton\n\t\t\t\t\t\t\tclassName={cn(styles.boxButton)}\n\t\t\t\t\t\t\tlabel={'Découvrir les habitations'}\n\t\t\t\t\t\t\thref={'#' + housesAnchor}\n\t\t\t\t\t\t\tfullWidth={true}\n\t\t\t\t\t\t\ticon='right'\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\n\t\t\t\t{!isDesktop && <ArrowDownButton\n\t\t\t\t\thtmlText={'Découvrir les habitations'}\n\t\t\t\t\tclassName={cn(styles.arrowDownCont)}\n\t\t\t\t\thref={'#' + housesAnchor}\n\t\t\t\t\tcolor={'white'}\n\t\t\t\t/>}\n\t\t\t</section>\n\n\t\t\t{houses &&\n\t\t\t\t<CityMapSlice\n\t\t\t\t\tid={housesAnchor}\n\t\t\t\t\tintroText={mapIntroStr}\n\t\t\t\t\thouses={houses}\n\t\t\t\t\tsearchPlaceholder={searchPlaceholder}\n\t\t\t\t/>\n\t\t\t}\n\n\n\t\t\t{isDesktop && <SliceIntro left />}\n\t\t</>\n\t)\n}\n\nexport async function getStaticProps({ params: { lang, city }, preview = false, previewData }) {\n\tconst cityPage = await getCityPage(lang, preview)\n\tconst props = await getCityBySlug(city, lang, preview)\n\n\treturn {\n\t\tprops: { ...cityPage, ...props, lang, preview, }\n\t}\n}\n\nexport async function getStaticPaths() {\n\tconst cities = await getCitiesSlugs()\n\t// console.log('[city].js::65 cities', cities)\n\n\treturn {\n\t\tpaths: cities.map(page => ({ params: page })),\n\t\tfallback: false,\n\t}\n}\n\nexport default CityPage\n"]},"metadata":{},"sourceType":"module"}