diff --git a/public/images/community b/public/images/community deleted file mode 100644 index 8b137891..00000000 --- a/public/images/community +++ /dev/null @@ -1 +0,0 @@ - diff --git a/public/images/playbook/og_playbook.jpg b/public/images/playbook/og_playbook.jpg new file mode 100644 index 00000000..1cb0a2c0 Binary files /dev/null and b/public/images/playbook/og_playbook.jpg differ diff --git a/public/images/playbook/playbook.svg b/public/images/playbook/playbook.svg new file mode 100644 index 00000000..62781f95 --- /dev/null +++ b/public/images/playbook/playbook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/playbook/playbook_thumb.jpg b/public/images/playbook/playbook_thumb.jpg new file mode 100644 index 00000000..4a17ca09 Binary files /dev/null and b/public/images/playbook/playbook_thumb.jpg differ diff --git a/public/images/playbook/tolocar_map_en.jpg b/public/images/playbook/tolocar_map_en.jpg new file mode 100644 index 00000000..817b4ed3 Binary files /dev/null and b/public/images/playbook/tolocar_map_en.jpg differ diff --git a/public/images/playbook/tolocar_map_ua.png b/public/images/playbook/tolocar_map_ua.png new file mode 100644 index 00000000..b0e5b17a Binary files /dev/null and b/public/images/playbook/tolocar_map_ua.png differ diff --git a/public/playbook/HowToTolocar_Playbook_EN_ES.pdf b/public/playbook/HowToTolocar_Playbook_EN_ES.pdf new file mode 100644 index 00000000..26658e48 Binary files /dev/null and b/public/playbook/HowToTolocar_Playbook_EN_ES.pdf differ diff --git a/public/playbook/HowToTolocar_Playbook_UA_ES.pdf b/public/playbook/HowToTolocar_Playbook_UA_ES.pdf new file mode 100644 index 00000000..61e5b10d Binary files /dev/null and b/public/playbook/HowToTolocar_Playbook_UA_ES.pdf differ diff --git a/src/assets/fa-calendar.svg b/src/assets/icons/calendar.svg similarity index 100% rename from src/assets/fa-calendar.svg rename to src/assets/icons/calendar.svg diff --git a/src/assets/fa-cog.svg b/src/assets/icons/cog.svg similarity index 100% rename from src/assets/fa-cog.svg rename to src/assets/icons/cog.svg diff --git a/src/assets/icons/gear.svg b/src/assets/icons/gear.svg new file mode 100644 index 00000000..51463ef1 --- /dev/null +++ b/src/assets/icons/gear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/fa-hammer.svg b/src/assets/icons/hammer.svg similarity index 100% rename from src/assets/fa-hammer.svg rename to src/assets/icons/hammer.svg diff --git a/src/assets/icons/screwdriver-wrench.svg b/src/assets/icons/screwdriver-wrench.svg new file mode 100644 index 00000000..2472a966 --- /dev/null +++ b/src/assets/icons/screwdriver-wrench.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/fa-screwdriver.svg b/src/assets/icons/screwdriver.svg similarity index 100% rename from src/assets/fa-screwdriver.svg rename to src/assets/icons/screwdriver.svg diff --git a/src/assets/fa-toolbox.svg b/src/assets/icons/toolbox.svg similarity index 100% rename from src/assets/fa-toolbox.svg rename to src/assets/icons/toolbox.svg diff --git a/src/assets/icons/truck-fast.svg b/src/assets/icons/truck-fast.svg new file mode 100644 index 00000000..586df6c7 --- /dev/null +++ b/src/assets/icons/truck-fast.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/fa-truck.svg b/src/assets/icons/truck.svg similarity index 100% rename from src/assets/fa-truck.svg rename to src/assets/icons/truck.svg diff --git a/src/assets/tolocar_underline_11.svg b/src/assets/tolocar_underline_11.svg new file mode 100644 index 00000000..c2ff20c1 --- /dev/null +++ b/src/assets/tolocar_underline_11.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/CarCard.tsx b/src/components/CarCard.tsx index 7a7cefdf..58510357 100644 --- a/src/components/CarCard.tsx +++ b/src/components/CarCard.tsx @@ -1,10 +1,10 @@ import React from "react"; -import CalendarIcon from "@assets/fa-calendar.svg?react"; -import TruckIcon from "@assets/fa-truck.svg?react"; -import CogIcon from "@assets/fa-cog.svg?react"; -import HammerIcon from "@assets/fa-hammer.svg?react"; -import ToolboxIcon from "@assets/fa-toolbox.svg?react"; -import ScrewdriverIcon from "@assets/fa-screwdriver.svg?react"; +import CalendarIcon from "@assets/icons/calendar.svg?react"; +import TruckIcon from "@assets/icons/truck.svg?react"; +import CogIcon from "@assets/icons/cog.svg?react"; +import HammerIcon from "@assets/icons/hammer.svg?react"; +import ToolboxIcon from "@assets/icons/toolbox.svg?react"; +import ScrewdriverIcon from "@assets/icons/screwdriver.svg?react"; interface Props { className?: string; diff --git a/src/components/HeadlineUnderlined.tsx b/src/components/HeadlineUnderlined.tsx index e2e9c9dd..01fdcd73 100644 --- a/src/components/HeadlineUnderlined.tsx +++ b/src/components/HeadlineUnderlined.tsx @@ -9,6 +9,7 @@ import Underline7Svg from "@assets/tolocar_underline_7.svg"; import Underline8Svg from "@assets/tolocar_underline_8.svg"; import Underline9Svg from "@assets/tolocar_underline_9.svg"; import Underline10Svg from "@assets/tolocar_underline_10.svg"; +import Underline11Svg from "@assets/tolocar_underline_11.svg"; import CircularUnderlineSvg from "@assets/tolocar_circular_underline.svg"; interface Props { @@ -36,6 +37,7 @@ const underlineSvgAndClassesMapping = [ }, { component: Underline9Svg, classes: "bottom-0" }, { component: Underline10Svg, classes: "top-6 w-full" }, + { component: Underline11Svg, classes: "top-10 w-full" }, ]; const HeadlineUnderlined: React.FC = ({ diff --git a/src/components/InfoItem.tsx b/src/components/InfoItem.tsx index 2731edaa..e4bedb25 100644 --- a/src/components/InfoItem.tsx +++ b/src/components/InfoItem.tsx @@ -5,6 +5,9 @@ import LeafIcon from "@assets/icons/leaf.svg?react"; import LightbulbOnIcon from "@assets/icons/lightbulb-on.svg?react"; import MaximizeIcon from "@assets/icons/maximize.svg?react"; import UsersIcon from "@assets/icons/users.svg?react"; +import TruckFastIcon from "@assets/icons/truck-fast.svg?react"; +import GearIcon from "@assets/icons/gear.svg?react"; +import ScrewdriverWrenchIcon from "@assets/icons/screwdriver-wrench.svg?react"; type Icons = | "bullseye_arrow" @@ -12,7 +15,10 @@ type Icons = | "leaf" | "lightbulb" | "maximize" - | "users"; + | "users" + | "truck" + | "gear" + | "screwdriver-wrench"; interface Props { className?: string; @@ -35,6 +41,9 @@ const InfoItem: React.FC = ({ lightbulb: LightbulbOnIcon, maximize: MaximizeIcon, users: UsersIcon, + truck: TruckFastIcon, + gear: GearIcon, + "screwdriver-wrench": ScrewdriverWrenchIcon, }; const IconComponent = iconMapping[icon as Icons] || (() => <>); diff --git a/src/components/Lightbox.astro b/src/components/Lightbox.astro new file mode 100644 index 00000000..f1a95262 --- /dev/null +++ b/src/components/Lightbox.astro @@ -0,0 +1,28 @@ +--- +import CommonUtils from "@util/CommonUtils"; + +const { image, alt, path } = Astro.props; + +const baseUrl = CommonUtils.getBaseUrl(false); +--- + +
+ + + + +
diff --git a/src/components/LinkNewTab.astro b/src/components/LinkNewTab.astro new file mode 100644 index 00000000..91ca1bb5 --- /dev/null +++ b/src/components/LinkNewTab.astro @@ -0,0 +1,4 @@ +--- +const { href, caption } = Astro.props; +--- +{caption} \ No newline at end of file diff --git a/src/components/NewsItem.tsx b/src/components/NewsItem.tsx index 896b8a5c..4ac5348f 100644 --- a/src/components/NewsItem.tsx +++ b/src/components/NewsItem.tsx @@ -1,69 +1,145 @@ import React from "react"; import ArrowIcon from "@assets/arrow.svg?react"; import InstagramIcon from "@assets/instagram.svg?react"; +import { ConditionalWrapper } from "@components"; + +type ItemType = "cta" | "instagram" | "fullImage"; interface Props { href: string; image?: string; - isInstagram?: boolean; - green?: boolean; title?: string; description?: string; + type?: ItemType; + newTab?: boolean; } const NewsItem: React.FC = ({ href, image, - isInstagram, - green, title, description, -}) => ( -
-
- {href && ( - - {green ? ( - <> -

{title}

- - - ) : ( -
- {isInstagram && ( - - )} - {image && ( - - )} - -
+ type = "instagram", + newTab, +}) => { + const containerClasses: Record = { + common: + "group relative flex flex-col h-full hover:-translate-y-4 duration-200 transition", + cta: "bg-tolo-green hover:bg-tolo-dark-green text-white bg-[position:bottom_-16px_left_-16px] bg-[url('/bulb-cog.svg')] hover:bg-[url('/bulb-cog-dark.svg')] bg-no-repeat", + instagram: "bg-white text-black", + fullImage: "", + }; + + const contentComponent: Record = { + cta: , + instagram: ( + + ), + fullImage: , + }; + + return ( +
-); + > + <>{contentComponent[type]} + +
+
+ ); +}; export default NewsItem; + +interface NewsItemContentSocialProps { + showIcon?: boolean; + image?: string; + description?: string; +} +const NewsItemContentSocial: React.FC = ({ + image, + showIcon = true, + description, +}) => { + return ( + <> +
+ {showIcon && ( + + )} + {image && ( + + )} + +
+
+ {description && ( +

{description}

+ )} +
+ + ); +}; + +interface NewsItemContentCtaProps { + title?: string; + description?: string; +} +const NewsItemContentCta: React.FC = ({ + title, + description, +}) => { + return ( + <> + {title && ( +

+ {title} +

+ )} + +
+ {description &&

{description}

} +
+ + ); +}; + +interface NewsItemContentCtaProps { + fullImage?: string; + alt?: string; +} +const NewsItemFullImage: React.FC = ({ + fullImage, + alt, +}) => { + return ( + <> + {fullImage && ( + + )} + + + ); +}; diff --git a/src/components/NewsSlider.tsx b/src/components/NewsSlider.tsx index 265e77c5..b09e421f 100644 --- a/src/components/NewsSlider.tsx +++ b/src/components/NewsSlider.tsx @@ -85,10 +85,10 @@ const NewsSlider: React.FC = ({ key={index} image={item.image} href={item.target} - isInstagram={item.instagram} - green={item.green} + type={item.type} description={item.description} title={item.title} + newTab={item.newTab} /> ))} diff --git a/src/components/NewsSliderDataWrapper.astro b/src/components/NewsSliderDataWrapper.astro index a393739d..57309aa5 100644 --- a/src/components/NewsSliderDataWrapper.astro +++ b/src/components/NewsSliderDataWrapper.astro @@ -14,11 +14,13 @@ const stickyNews = ( await getCollection("news", ({ id }) => { return id.startsWith(localeFromUrl); }) -).map((item) => ({ - ...item.data, - id: item.id, - target: baseUrl + "/" + localeFromUrl + "/" + item.data.target, -})); +) + .map((item) => ({ + ...item.data, + id: item.id, + target: baseUrl + "/" + localeFromUrl + "/" + item.data.target, + })) + .sort((a, b) => (a?.order || 0) - (b?.order || 0)); --- = ({ buttonClasses, centerImage, children, + centerImageClasses }) => { const bgMapping = [ "bg-illustration-4-wide mask-illustration-vertical md:mask-illustration-horizontal bg-no-repeat bg-[position:right_-80px_top_-40px] mt-24 md:mt-0", @@ -44,13 +46,13 @@ const WideCard: React.FC = ({
{(centerImage || title || text) && (
- {centerImage && } + {centerImage && } {title && (

{title} diff --git a/src/content/config.ts b/src/content/config.ts index 8dc63bd1..51729038 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -4,9 +4,12 @@ const newsCollection = defineCollection({ type: "data", schema: z.object({ target: z.string(), - title: z.string(), + title: z.string().optional(), description: z.string(), - green: z.boolean(), + type: z.enum(["instagram", "cta", "fullImage"]), + newTab: z.boolean().optional(), + image: z.string().optional(), + order: z.number().optional() }), }); diff --git a/src/content/news/en/makers-innovation-awards.yaml b/src/content/news/en/makers-innovation-awards.yaml index a917131d..e8f02706 100644 --- a/src/content/news/en/makers-innovation-awards.yaml +++ b/src/content/news/en/makers-innovation-awards.yaml @@ -1,4 +1,5 @@ title: "Makers Innovation Award" description: "Where Networking Meets Funding, Mentoring Sparks Ideas, and Innovation Comes to Life!" target: makersinnovationaward -green: true \ No newline at end of file +type: cta +order: 1 \ No newline at end of file diff --git a/src/content/news/en/playbook.yaml b/src/content/news/en/playbook.yaml new file mode 100644 index 00000000..1e3db6ef --- /dev/null +++ b/src/content/news/en/playbook.yaml @@ -0,0 +1,5 @@ +description: "How to Tolocar: Playbook for Mobile Makerspaces" +target: playbook +type: fullImage +image: images/playbook/playbook_thumb.jpg +order: 2 \ No newline at end of file diff --git a/src/content/news/ua/makers-innovation-awards.yaml b/src/content/news/ua/makers-innovation-awards.yaml index 3aacdca2..e10f4460 100644 --- a/src/content/news/ua/makers-innovation-awards.yaml +++ b/src/content/news/ua/makers-innovation-awards.yaml @@ -1,4 +1,5 @@ title: "Makers Innovation Award" description: "тут нетворкінг зустрічається з фінансуванням, менторство запалює ідеї, а інновації втілюються в життя!" target: makersinnovationaward -green: true \ No newline at end of file +type: cta +order: 1 \ No newline at end of file diff --git a/src/content/news/ua/playbook.yaml b/src/content/news/ua/playbook.yaml new file mode 100644 index 00000000..e98becb2 --- /dev/null +++ b/src/content/news/ua/playbook.yaml @@ -0,0 +1,5 @@ +description: "ЯК ТОЛОКАРИТИ: Практичний посібник для мобільних мейкерспейсів" +target: playbook +type: fullImage +image: images/playbook/playbook_thumb.jpg +order: 2 \ No newline at end of file diff --git a/src/interfaces/INews.ts b/src/interfaces/INews.ts index 028a6a86..0a16a33d 100644 --- a/src/interfaces/INews.ts +++ b/src/interfaces/INews.ts @@ -3,9 +3,9 @@ export interface INewsItem { image?: string; imageFilename?: string; target: string; - instagram?: boolean; + newTab?: boolean; title?: string; description: string; order?: number; - green?: boolean; + type?: "instagram" | "cta" | "fullImage"; } diff --git a/src/pages/en/_menu.mdx b/src/pages/en/_menu.mdx index 266b7574..9ebfe9ef 100644 --- a/src/pages/en/_menu.mdx +++ b/src/pages/en/_menu.mdx @@ -16,6 +16,9 @@ menu: - title: Maker Academy target: "en/academy" + - title: Playbook + target: "en/playbook" + - title: Jobs target: "en/jobs" hideInHeader: true diff --git a/src/pages/en/makersinnovationaward.mdx b/src/pages/en/makersinnovationaward.mdx index ec8bad13..a29c924c 100644 --- a/src/pages/en/makersinnovationaward.mdx +++ b/src/pages/en/makersinnovationaward.mdx @@ -11,6 +11,7 @@ import { HeadlineUnderlined, TextBlock, InfoItem, + ButtonLink } from "@components"; diff --git a/src/pages/en/playbook.mdx b/src/pages/en/playbook.mdx new file mode 100644 index 00000000..366d9f79 --- /dev/null +++ b/src/pages/en/playbook.mdx @@ -0,0 +1,137 @@ +--- +layout: "@layouts/AwardsLayout.astro" +title: "How to Tolocar: Playbook for Mobile Makerspaces" +footerGrey: false +metaImage: images/playbook/og_playbook.jpg +metaDescription: "How to Tolocar: With this playbook, we share our insights from the Tolocar project, and the diverse possibilities and applications of mobile makerspaces in Ukraine since May 2022." +--- + +import WideCard from "@components/WideCard"; +import { + HeadlineUnderlined, + TextBlock, + ButtonLink, + InfoItem, +} from "@components"; +import LinkNewTab from "@components/LinkNewTab.astro" +import Lightbox from "@components/Lightbox.astro" +import CommonUtils from "@util/CommonUtils"; +export const baseUrl = CommonUtils.getBaseUrl(false); + + +
+
+ + How to Tolocar: Our Playbook for Mobile Makerspaces + + + **Toloka is a traditional way of showing solidarity through the provision of physical support in Ukraine.** With that in mind, German and Ukrainian partners with support from the Deutsche Gesellschaft für Internationale Zusammenarbeit (GIZ) co-created the Tolocar project just a few weeks after the start of the full-scale Russian invasion of Ukraine. + + The goal of the project is to support both the emergency relief activities, and the development of a participatory innovation ecosystem for the socio-economic recovery of Ukraine. + + With this playbook, we showcase different interpretations of what mobile makerspaces are, share use cases and equipment lists, and introduce the different qualities of our team which have been essential to the successful implementation of the project. + +
+
+ + +
+ Read the Playbook + +
+ +
+
+

+ Make Things that Make Sense. Anywhere. +

+
+ + Connected to the global maker community, Tolocars create flexible and temporary production systems at partner organization locations. This innovative approach enables on-site distributed manufacturing, providing customized solutions where they are needed most. + + Distributed manufacturing enables smaller-scale production much closer to the end-user, reducing costs, lead times, and environmental impact. + +
+ + The playbook reflects the iterative and pluralistic approach of this unprecedented project, and aims to spark conversations with others who are interested in the topic. Hosted on Appropedia, the sustainability wiki, the playbook in its virtual form is a living document. Please join the conversation on Appropedia! + + +
+
+ +
+
+
+ +
+
+

With a fleet of mobile makerspaces at its core, Tolocar + brings together experts from the fields of making, distributed + manufacturing, and urban planning with civil society + organizations in Ukraine to:

+
+
+ + + + + +
+
+
+ +
+
+ + ### Appropedia + Appropedia is a wiki-based website that helps people share information and collaborate on projects to address poverty, international development, and environmental sustainability. +
+
+ + ### Maker Academy + With the Maker Academy, we are crafting a project-based curriculum in Ukrainian centered around the construction of open source computer-controlled machines, ranging in complexity and capabilities. +
+
+ + ### Support & Contact + One of our main goals is to connect the global maker community with local makers and initivatives in order to support and strengthen them. + + For more information, please contact us at + + info@tolocar.org + +
+
diff --git a/src/pages/ua/_menu.mdx b/src/pages/ua/_menu.mdx index 205ce25e..887b7fba 100644 --- a/src/pages/ua/_menu.mdx +++ b/src/pages/ua/_menu.mdx @@ -16,6 +16,9 @@ menu: - title: Maker Academy target: "ua/academy" + - title: Playbook + target: "ua/playbook" + - title: Контакти target: "mailto:info@tolocar.org" hideInHeader: true diff --git a/src/pages/ua/makersinnovationaward.mdx b/src/pages/ua/makersinnovationaward.mdx index 8a59b648..5d0d48a6 100644 --- a/src/pages/ua/makersinnovationaward.mdx +++ b/src/pages/ua/makersinnovationaward.mdx @@ -11,6 +11,7 @@ import { HeadlineUnderlined, TextBlock, InfoItem, + ButtonLink } from "@components"; diff --git a/src/pages/ua/playbook.mdx b/src/pages/ua/playbook.mdx new file mode 100644 index 00000000..17137fbd --- /dev/null +++ b/src/pages/ua/playbook.mdx @@ -0,0 +1,136 @@ +--- +layout: "@layouts/AwardsLayout.astro" +title: "ЯК ТОЛОКАРИТИ: Практичний посібник для мобільних мейкерспейсів" +footerGrey: false +metaImage: images/playbook/og_playbook.jpg +metaDescription: "ЯК ТОЛОКАРИТИ: У цьому Практичний посібник ми ділимося нашими усвідомленнями, здобутими в межах проєкту «Tolocar», а також різноманітними можливостями та варіантами застосування мобільних мейкерспейсів в Україні з травня 2022 року." +--- + +import WideCard from "@components/WideCard"; +import { + HeadlineUnderlined, + TextBlock, + ButtonLink, + InfoItem, +} from "@components"; +import LinkNewTab from "@components/LinkNewTab.astro" +import Lightbox from "@components/Lightbox.astro" +import CommonUtils from "@util/CommonUtils"; +export const baseUrl = CommonUtils.getBaseUrl(false); + + + +
+
+ + ЯК ТОЛОКАРИТИ. Практичний посібник для мобільних мейкерспейсів + + + **Толока — це традиційний спосіб виявлення солідарності в Україні через фізичну допомогу.** Зважаючи на це, за підтримки Німецького товариства з міжнародного співробітництва (GIZ) німецькі й українські партнери разом створили проєкт «Tolocar» всього через кілька тижнів після початку повномасштабного вторгнення Росії* в Україну. + + Мета проєкту — підтри- мати як заходи з надання екстреної допомоги, так і розвиток інновацій-ної учасницької екосистеми для соціально-економічного відновлення України. + + **У цьому Практичний посібник** ми показуємо різне розуміння того, чим є мобільні мейкер- спейси, ділимося випадками використання та списками обладнання, а також представляємо багатогранні якості нашої команди, які стали визначальними для успішної реалізації проєкту. + +
+
+ +
+ Читати практичний посібник + +
+ +
+
+

+ Робити те, що має сенс. Будь-де. +

+
+ + Завдяки зв'язкам з глобальною спільнотою виробників, Tolocars створює гнучкі та тимчасові виробничі системи в місцях розташування організацій-партнерів. Цей інноваційний підхід уможливлює розподілене виробництво на місці, надаючи індивідуальні рішення там, де вони найбільше потрібні. + + Розподілене виробництво дає змогу розмістити дрібномасштабне виробництво набагато ближче до кінцевого споживача, зменшуючи витрати, час виконання замовлення та вплив на навколишнє середовище. + +
+ + Практичний посібник відображає ітеративний і плюралістичний підхід цього безпрецедентного проекту і має на меті викликати дискусії з іншими, хто цікавиться цією темою. Розміщений на Appropedia, вікі про сталий розвиток, ігровий посібник у своїй віртуальній формі є живим документом. Будь ласка, долучайтеся до обговорення на Appropedia! + + +
+
+ +
+
+
+ +
+
+

Проєкт «Tolocar» розгортається навколо парку мобільних майстерень — мейкерспейсів — та об’єднує фахівців у сфері мейкінгу, розподіленого виробництва та планування міського розвитку із організаціями грома-дянського суспільства України для:

+
+
+ + + + + +
+
+
+ +
+
+ + ### Appropedia + Appropedia - це вікі-сайт, який допомагає людям обмінюватися інформацією та співпрацювати над проектами, спрямованими на подолання бідності, міжнародний розвиток та екологічну стійкість. +
+ +
+ + ### Maker Academy + Разом з Академією мейкерства ми розробляємо проєктну навчальну програму українською мовою, яка зосереджена на створенні комп'ютерно-керованих машин з відкритим вихідним кодом, різних за складністю та можливостями. +
+ +
+ + ### Support & Contact + Одна з наших головних цілей - об'єднати глобальну спільноту мейкерів з локальними мейкерами та ініціативами, щоб підтримати та зміцнити їх. + + Для отримання додаткової інформації, будь ласка, зв'яжіться з нами за адресою + + info@tolocar.org + +
+
diff --git a/src/util/Airtable.ts b/src/util/Airtable.ts index 2d349d13..5c14d57f 100644 --- a/src/util/Airtable.ts +++ b/src/util/Airtable.ts @@ -131,6 +131,8 @@ export const getNewsItems = async ( let combinedData: AirtableNewsRecord[] = []; let hasOffset; + console.log(`Trying to get news items...`); + const apiParameters = encodeURI( '&fields[]=Name&fields[]=Name+UA&fields[]=Media+type&fields[]=Images&fields[]=Selected+Photos+(from+Event)&fields[]=Instagram+URL&filterByFormula=AND({Instagram+URL},{Status}="live")&sort[0][field]=Post+date&sort[0][direction]=desc' ); @@ -215,7 +217,8 @@ export const getNewsItems = async ( ? record.fields?.["Name UA"] : record.fields?.["Name"], target: record.fields?.["Instagram URL"], - instagram: true, + type: "instagram", + newTab: true, imageFilename: record.fields?.["Images"]?.[0].filename || record.fields?.["Selected Photos (from Event)"]?.[0].filename, @@ -243,6 +246,8 @@ export const getMapPois = async (baseUrl?: string) => { let combinedData: AirtablePoiRecord[] = []; let hasOffset; + console.log(`Trying to get Map POIs...`); + const apiParameters = encodeURI( 'fields[]=Short+description&fields[]=Start+Date&fields[]=End+Date&fields[]=Status&fields[]=Kind&fields[]=Public+Photos&fields[]=Geo+cash+(Event)&filterByFormula=AND({Short+description},{Status}="6+-+DONE",OR({Start+Date},{End+Date}),{Public+Photos})' );