{"version":3,"sources":["actions/pageActions.ts","components/MenuButton/MenuButton.tsx","components/RightAside/RightAside.tsx","components/ToastMessage/ToastMessage.tsx","models/Contact.ts","containers/Landing/Sections/ContactUs.tsx","containers/Logotip.svg","containers/Logotip_white.svg","containers/Logotip_mobile.svg","containers/Logotip_mobile_white.svg","containers/Landing/Sections/Uprise.tsx","containers/Section.tsx","services/ContactService.ts","containers/Contact/ContactSection/Contact.tsx","containers/Footer/Footer.tsx","containers/Menu/Menu.tsx","components/CookieConsentPrompt/CookieConsentPrompt.tsx","containers/Layout/Layout.tsx","containers/Landing/Sections/Home/Home.tsx","components/ProjectCard/ProjectCard.tsx","services/ProjectService.ts","containers/Landing/Sections/OurProjects/OurProjects.tsx","services/ServiceService.ts","containers/Landing/Sections/WhatWeDo/WhatWeDo.tsx","containers/Landing/Sections/WhoWeAre/images/Team1.jpg","containers/Landing/Sections/WhoWeAre/images/Team2.jpg","containers/Landing/Sections/WhoWeAre/images/Team3.jpg","containers/Landing/Sections/WhoWeAre/images/Creative.jpg","containers/Landing/Sections/WhoWeAre/images/AvatarDino.svg","containers/Landing/Sections/WhoWeAre/images/AvatarFilip.svg","containers/Landing/Sections/WhoWeAre/images/AvatarMirko.svg","containers/Landing/Sections/WhoWeAre/images/AvatarFilipG.svg","containers/Landing/Sections/WhoWeAre/WhoWeAre.tsx","containers/Landing/Landing.tsx","containers/Team/Sections/TeamHome/TeamHome.tsx","containers/Team/Sections/AboutUs/images/Team1.jpg","containers/Team/Sections/AboutUs/images/Team2.jpg","containers/Team/Sections/AboutUs/images/Team3.jpg","containers/Team/Sections/AboutUs/AboutUs.tsx","containers/Team/Sections/OurStory/images/Story.jpg","containers/Team/Sections/OurStory/OurStory.tsx","components/Quotes/quotes_icon.svg","components/Quotes/Quotes.tsx","containers/Team/Sections/QuotesSection/QuotesSection.tsx","containers/Team/Team.tsx","containers/Careers/Sections/CareersHome.tsx","containers/Careers/Sections/CareersPositions.tsx","containers/Careers/Sections/CareersGeneric.tsx","containers/Careers/Careers.tsx","containers/Work/Sections/WorkHome.tsx","containers/Work/Sections/AllProjects.tsx","containers/Work/Work.tsx","containers/Services/Sections/ServicesHome.tsx","containers/Services/Sections/ServicesList.tsx","containers/Services/Sections/Slash.svg","containers/Services/Sections/ServicesDetailed.tsx","containers/Services/Services.tsx","containers/Legal/Legal.tsx","containers/Legal/Privacy.tsx","services/BlogPostService.ts","containers/Blog/Sections/AllPosts.tsx","containers/Blog/Blog.tsx","containers/Post/Post.tsx","containers/Projects/Project/Sections/ProjectDesign.tsx","containers/Projects/Project/Sections/ProjectHome.tsx","containers/Projects/Project/Sections/ProjectScope.tsx","containers/Projects/Project/Project.tsx","containers/Contact/ContactRouteWrapper/ContactRouteWrapper.tsx","App.tsx","reportWebVitals.ts","store/pageStateReducer.ts","actions/toastMessageActions.ts","store/toastMessageReducer.tsx","index.tsx","store/configureStore.ts"],"names":["TOGGLE_MENU","TOGGLE_CONTACT","ToggleMenu","type","ToggleContact","MenuButton","open","useSelector","state","pageState","menuOpen","dispatch","useDispatch","id","className","onClick","RightAside","ToastMessage","toastMessage","showMessage","text","success","initShortMessage","name","email","aboutProject","ContactUs","borderColor","isExit","data-name","xmlns","viewBox","fill","d","transform","cx","cy","r","stroke","Uprise","Section","children","textColor","logoColor","undefined","contactColor","exitContact","logoLink","props","logo","logoWhite","logoGrey","logom","logoMWhite","logoMGrey","style","color","to","src","alt","postShortMessage","shortMessage","a","fetch","method","headers","body","JSON","stringify","Contact","useState","setShortMessage","sendingDisabled","setSendingDisabled","currentlySending","setCurrentlySending","sendShortMessage","ok","toast","useEffect","placeholder","value","onChange","e","target","rows","hidden","href","Footer","rel","menuItems","link","Menu","close","openContact","map","items","i","item","option","navOption","CookieConsentPrompt","handleAcceptCookie","ReactGA","initialize","LinkedInTag","init","handleDeclineCookie","Cookies","remove","disabled","getCookieConsentValue","containerClasses","buttonWrapperClasses","contentClasses","buttonText","declineButtonText","disableStyles","enableDeclineButton","onAccept","onDecline","Layout","scroll","setScroll","scrollDirection","setScrollDirection","contactOpen","handleScroll","currentScroll","scrollTop","currentScrollDirection","clases","getClassName","onScroll","Home","Fade","require","ProjectCard","up","ordinal","description","image","dotenv","config","projectsEndpoint","process","fetchConfig","Authorization","fetchProjects","response","Error","json","responseData","console","error","fetchLandingProjects","fetchSingleProject","slug","endpointUrl","OurProjects","projects","setProjectsList","fetchData","useCallback","svc","data","project","attributes","title","num","toString","padStart","formats","small","url","servicesEndpoint","fetchServices","WhatWeDo","services","setServicesList","service","WhoWeAre","teamImg1","teamImg2","creativeImg","teamImg3","DinoIcon","MirkoIcon","FilipIcon","FilipGIcon","Landing","TeamHome","AboutUs","OurStory","_defs","_path","storyImg","_extends","Object","assign","bind","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgQuotesIcon","_ref","svgRef","titleId","ref","ForwardRef","Quotes","quotes","showArrows","showStatus","showThumbs","infiniteLoop","interval","autoPlay","quote","index","content","credentials","QuotesSection","Team","CareersHome","CareersPositions","CareersGeneric","Careers","WorkHome","AllProjects","Work","ServicesHome","ServicesList","description_list","ServicesDetailed","title_details","components","img","node","maxWidth","slashIcon","title_appendix","replaceAll","content_left","content_right","Services","servicesList","Legal","Privacy","articlesEndpoint","fetchBlogPosts","fetchSinglePost","AllPosts","blogPage","setBlogPage","fetchBlogPage","pst","post","dateformat","publishedAt","summary","Blog","Post","useParams","setPost","fetchPost","Helmet","property","window","location","ProjectDesign","colors","split","designVideo","startsWith","width","height","controls","fonts","backgroundColor","maxHeight","ProjectHome","client","home","industry","technology","homeText","row","ProjectScope","scopeText","scopeImage","goal","Project","setProject","fetchProject","pjt","ContactRouteWrapper","ScrollToTop","pathname","useLocation","document","querySelector","scrollTo","App","exact","path","component","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","initialState","pageStateReducer","action","SET_TOAST_MESSAGE","SHOW_TOAST_MESSAGE","HIDE_TOAST_MESSAGE","SetToastMessage","ShowToastMessage","HideToastMessage","toastMessageReducer","substring","lastIndexOf","store","rootReducer","combineReducers","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","push","createStore","configureStore","timeout","setTimeout","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.b895503a.chunk.js","sourcesContent":["export const TOGGLE_MENU = \"TOGGLE_MENU\";\nexport const TOGGLE_CONTACT = \"TOGGLE_CONTACT\";\n\nexport type PageStateActionType =\n | ReturnType\n | ReturnType;\n\n\nexport const ToggleMenu = () => {\n return { type: TOGGLE_MENU };\n};\n\nexport const ToggleContact = () => {\n return { type: TOGGLE_CONTACT };\n};","import { useDispatch, useSelector } from \"react-redux\";\nimport { ToggleMenu } from \"../../actions/pageActions\";\nimport { AppState } from \"../../store/configureStore\";\nimport './MenuButton.less';\n\nfunction MenuButton() {\n const open = useSelector(state => state.pageState.menuOpen);\n const dispatch = useDispatch();\n\n const toggle = () => {\n dispatch(ToggleMenu())\n }\n\n return (\n
\n
\n
\n
\n
\n )\n}\n\nexport default MenuButton;","import MenuButton from '../MenuButton/MenuButton';\nimport './RightAside.less';\n\nexport const RightAside = () => {\n return (\n \n );\n};\n","import { useSelector } from \"react-redux\";\nimport { AppState } from \"../../store/configureStore\";\nimport \"./ToastMessage.less\";\n\nexport const ToastMessage = () => {\n const { showMessage, text, success } = useSelector((state: AppState) => state.toastMessage);\n\n return (\n
\n
\n {text}\n
\n
\n );\n};\n","export interface IProjectInfo {\n interestedSelected: string[];\n bugetSelected: string;\n aboutUsSelected: string;\n customerName: string;\n companyName: string;\n email: string;\n aboutProject: string;\n}\n\nexport interface IShortMessage {\n name: string;\n email: string;\n aboutProject: string;\n}\n\nexport const initShortMessage: IShortMessage = {\n name: \"\",\n email: \"\",\n aboutProject: \"\",\n};\n\nexport interface ILongMessage {\n name: string;\n email: string;\n position: string;\n industry: string;\n message: string;\n}\n\nexport const initLongMessage: ILongMessage = {\n name: \"\",\n email: \"\",\n position: \"\",\n industry: \"\",\n message: \"\",\n};\n","interface ContactUsProps {\n borderColor: string;\n isExit?: boolean;\n}\n\nconst ContactUs = ({ borderColor, isExit = false }: ContactUsProps) => (\n \n ContactUs\n {isExit ? (\n \n ) : (\n \n )}\n \n \n);\n\nexport default ContactUs;\n","export default __webpack_public_path__ + \"static/media/Logotip.d8de3bcd.svg\";","export default __webpack_public_path__ + \"static/media/Logotip_white.547c7f23.svg\";","export default __webpack_public_path__ + \"static/media/Logotip_mobile.2ed57223.svg\";","export default __webpack_public_path__ + \"static/media/Logotip_mobile_white.95347c2e.svg\";","export const Uprise = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { ReactNode } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { HashLink as Link } from \"react-router-hash-link\";\nimport { ToggleContact } from \"../actions/pageActions\";\nimport ContactUs from \"./Landing/Sections/ContactUs\";\nimport logoGrey from \"./Logotip.svg\";\nimport logoWhite from \"./Logotip_white.svg\";\nimport logoMGrey from \"./Logotip_mobile.svg\";\nimport logoMWhite from \"./Logotip_mobile_white.svg\";\nimport { Uprise } from \"./Landing/Sections/Uprise\";\nimport \"./Section.less\";\n\nexport interface SectionProps {\n textColor?: \"grey\" | \"white\";\n logoColor?: string;\n contactColor?: \"yellow\" | \"red\" | \"green\";\n id?: string;\n exitContact?: boolean;\n logoLink?: boolean;\n children: ReactNode;\n className?: string;\n}\n\nfunction Section({\n children,\n textColor = \"white\",\n logoColor = undefined,\n contactColor = \"yellow\",\n exitContact = false,\n logoLink = true,\n className,\n ...props\n}: SectionProps) {\n const dispatch = useDispatch();\n\n const toggleContact = () => {\n dispatch(ToggleContact());\n };\n\n logoColor = logoColor ?? textColor;\n const logo: string = logoColor === \"white\" ? logoWhite : logoGrey;\n const logom: string = logoColor === \"white\" ? logoMWhite : logoMGrey;\n\n return (\n \n
\n \n \"logo\"\n \"logo\"\n \n
\n
\n
\n \n

contact us

\n
\n\n
\n

Powered by

\n \n
\n
\n
{children}
\n \n );\n}\n\nexport default Section;\n","import { IProjectInfo, IShortMessage } from \"../models/Contact\";\n\nexport async function postProjectInfo(projectInfo: IProjectInfo) {\n return await fetch(\"/api/Contacts\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(projectInfo),\n });\n}\n\nexport async function postShortMessage(shortMessage: IShortMessage) {\n return await fetch(\"/api/Contacts/shortmessage\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(shortMessage),\n });\n}\n","import { useEffect, useState } from \"react\";\nimport { initShortMessage, IShortMessage } from \"../../../models/Contact\";\nimport Section from \"../../Section\";\nimport { postShortMessage } from \"../../../services/ContactService\";\nimport \"./Contact.less\";\nimport { toast } from \"../../..\";\n\nfunction Contact() {\n const [shortMessage, setShortMessage] = useState(initShortMessage);\n const [sendingDisabled, setSendingDisabled] = useState(true);\n const [currentlySending, setCurrentlySending] = useState(false);\n\n const sendShortMessage = async () => {\n setCurrentlySending(true);\n const res = await postShortMessage(shortMessage);\n\n if (res.ok) {\n // Toast message sent success.\n setShortMessage(initShortMessage);\n toast(\"Your message was sent successfully.\\nThank you!\", true, 5000);\n } else {\n // Toast message failed.\n toast(\"It looks like something went wrong.\\nPlase try again later!\", true, 5000);\n }\n\n setCurrentlySending(false);\n };\n\n useEffect(() => {\n setSendingDisabled(!shortMessage.name || !shortMessage.email || !shortMessage.aboutProject);\n }, [shortMessage, setSendingDisabled]);\n\n return (\n
\n
\n

We’d love to hear from you!

\n

\n Describe your project and leave us your contact info, we’ll get back to you\n within 24 hours.\n

\n
\n
\n {\n setShortMessage({ ...shortMessage, name: e.target.value });\n }}\n />\n setShortMessage({ ...shortMessage, email: e.target.value })}\n />\n \n setShortMessage({ ...shortMessage, aboutProject: e.target.value })\n }\n >\n\n
\n
\n
\n \n \n Send\n \n
\n
\n \n\n {/**\n
\n

What happens next?

\n
    \n
  • We will reply within 24 hours
  • \n
  • We will set up a meeting where you can get all relevant info
  • \n
  • You will get a price estimation
  • \n
  • We will build great products together
  • \n
\n
\n */}\n\n
\n
\n
\n
\n

\n \n info@project42.agency\n \n

\n

Project 42 Technologies d.o.o

\n

Trg Drage Iblera 10, 10 000 Zagreb

\n
\n
\n );\n}\n\nexport default Contact;\n","import { Link } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { ToggleContact } from \"../../actions/pageActions\";\nimport Section from \"../Section\";\nimport \"./Footer.less\";\n\nfunction Footer() {\n const dispatch = useDispatch();\n\n const openContact = () => {\n dispatch(ToggleContact());\n };\n\n return (\n
\n
\n
\n \n

Home

\n \n \n

Services

\n \n \n

About

\n \n \n

Careers

\n \n \n

Work

\n \n

\n Contact\n

\n \n

Blog

\n \n
\n\n
\n
\n \n Facebook\n \n \n Instagram\n \n \n LinkedIn\n \n
\n
\n
\n
\n
\n Privacy Policy\n Legal\n

©2022 Project42.agency

\n
\n
\n );\n}\n\nexport default Footer;\n","import { ReactNode } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { ToggleContact, ToggleMenu } from \"../../actions/pageActions\";\nimport { HashLink as Link } from \"react-router-hash-link\";\nimport Section from \"../Section\";\nimport \"./Menu.less\";\n\ninterface NavItem {\n name: string;\n link?: string;\n}\n\nconst menuItems: NavItem[][] = [\n [\n { name: \"Home\", link: \"/\" },\n { name: \"About\", link: \"/about\" },\n { name: \"Work\", link: \"/work\" },\n { name: \"Blog\", link: \"/blog\" },\n ],\n [\n { name: \"Services\", link: \"/services\" },\n { name: \"Careers\", link: \"/careers\" },\n { name: \"Contact\" },\n ],\n];\n\nfunction Menu() {\n const dispatch = useDispatch();\n\n const close = () => {\n dispatch(ToggleMenu());\n };\n\n const openContact = () => {\n dispatch(ToggleContact());\n };\n\n const navOption = (option: NavItem): ReactNode => {\n let onClick = option.name === \"Contact\" ? openContact : close;\n\n if (option.link) {\n return (\n \n

{option.name}

\n \n );\n } else {\n return (\n

\n {option.name}\n

\n );\n }\n };\n\n return (\n
\n
\n {menuItems.map((items, i) => (\n
\n {items.map(item => navOption(item))}\n
\n ))}\n
\n
\n \n Facebook\n \n \n Instagram\n \n \n LinkedIn\n \n
\n
\n );\n}\n\nexport default Menu;\n","import { useEffect } from \"react\";\nimport ReactGA from \"react-ga4\";\nimport CookieConsent, { Cookies, getCookieConsentValue } from \"react-cookie-consent\";\nimport LinkedInTag from \"react-linkedin-insight\";\nimport \"./CookieConsentPrompt.less\";\n\nexport const CookieConsentPrompt = () => {\n const GOOGLE_ANALYTICS_ID = \"G-QP92QY1BDS\";\n const LINKEDIN_PARTNER_ID = \"4917258\";\n\n const handleAcceptCookie = () => {\n ReactGA.initialize(GOOGLE_ANALYTICS_ID);\n LinkedInTag.init(LINKEDIN_PARTNER_ID);\n };\n\n const handleDeclineCookie = () => {\n //remove google analytics cookies\n Cookies.remove(\"_ga\");\n Cookies.remove(\"_gat\");\n Cookies.remove(\"_gid\");\n Cookies.remove(\"ln_or\");\n LinkedInTag.disabled = true;\n };\n\n useEffect(() => {\n const isConsent = getCookieConsentValue();\n if (isConsent === \"true\") {\n handleAcceptCookie();\n } else {\n handleDeclineCookie();\n }\n }, []);\n\n return (\n
\n \n
\n This website uses cookies to ensure you get the best experience on our website.\n
\n \n
\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { RightAside } from \"../../components/RightAside/RightAside\";\nimport { AppState } from \"../../store/configureStore\";\nimport { ToastMessage } from \"../../components/ToastMessage/ToastMessage\";\nimport Contact from \"../Contact/ContactSection/Contact\";\nimport Footer from \"../Footer/Footer\";\nimport Menu from \"../Menu/Menu\";\nimport { CookieConsentPrompt } from \"../../components/CookieConsentPrompt/CookieConsentPrompt\";\nimport \"./Layout.less\";\n\nexport const Layout = (props: any) => {\n const [scroll, setScroll] = useState(0);\n const [scrollDirection, setScrollDirection] = useState(\"up\");\n const menuOpen = useSelector(state => state.pageState.menuOpen);\n const contactOpen = useSelector(state => state.pageState.contactOpen);\n\n useEffect(() => {\n if (menuOpen || contactOpen) {\n setScrollDirection(\"up\");\n }\n }, [menuOpen, contactOpen]);\n\n const getClassName = () => {\n let clases = `scroll-${scrollDirection}`;\n if (menuOpen) {\n clases += \" menu-open\";\n }\n if (contactOpen) {\n clases += \" contact-open\";\n }\n return clases;\n };\n\n const handleScroll = (e: any) => {\n let currentScroll = e.target.scrollTop;\n let currentScrollDirection = scrollDirection;\n if (currentScroll !== scroll) {\n currentScrollDirection = currentScroll > scroll ? \"down\" : \"up\";\n }\n if (currentScrollDirection !== scrollDirection) {\n setScrollDirection(currentScrollDirection);\n }\n setScroll(currentScroll);\n };\n\n return (\n
\n \n \n
\n
{props.children}
\n
\n
\n \n
\n \n
\n \n
\n );\n};\n","import Section from \"../../../Section\";\n//import BuildProjectWizard from \"../../../../components/BuildProjectWizard/BuildProjectWizard\";\nimport \"./Home.less\";\n\nfunction Home() {\n //const [buildProductOpen, setBuildProductOpen] = React.useState(false);\n\n return (\n
\n

\n We build digital solutions that solve real-life problems and are tailored around\n your needs.\n

\n
\n
\n

\n Project42 is a digital agency that specializes in design, development,\n animation and extended reality.\n
\n Project42 is power by Uprise.\n

\n {/**\n setBuildProductOpen(!buildProductOpen)}\n >\n Build a product\n \n */}\n
\n
\n\n {/*\n
\n \n
\n */}\n
\n );\n}\n\nexport default Home;\n","import { Link } from \"react-router-dom\";\nimport \"./ProjectCard.less\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nexport interface ProjectProps {\n name: string;\n ordinal: string;\n description: string;\n image: string;\n link?: string;\n type: string;\n}\n\nexport const ProjectCard = (props: ProjectProps) => {\n return (\n \n
\n
\n

{\"[\" + props.ordinal + \"] \" + props.type}

\n {props.link ? (\n \n

{props.name}

\n \n ) : (\n

{props.name}

\n )}\n

{props.description}

\n
\n {props.link ? (\n \n \"\"\n \n ) : (\n

\"\"

\n )}\n
\n
\n );\n};\n","import dotenv from 'dotenv';\n\ndotenv.config();\n\nconst strapiBaseUrl = process.env.REACT_APP_STRAPI_API_URL;\nconst accessToken = process.env.REACT_APP_ACCESS_TOKEN;\n\nconst projectsEndpoint = `${strapiBaseUrl}/projects`;\n\nconst fetchConfig = {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n};\n\nexport async function fetchProjects() {\n try {\n const response = await fetch(`${projectsEndpoint}?populate=*&sort[1]=publishedAt:desc`, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}\n\nexport async function fetchLandingProjects() {\n try {\n const response = await fetch(`${projectsEndpoint}?populate=*&sort[1]=publishedAt:desc&pagination[page]=1&pagination[pageSize]=3`, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}\n\nexport async function fetchSingleProject(slug: string) {\n try {\n const endpointUrl = `${projectsEndpoint}?filters[slug][$eq]=${slug}&populate=*`;\n\n const response = await fetch(endpointUrl, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}","import Section from \"../../../Section\";\nimport { ProjectCard } from \"../../../../components/ProjectCard/ProjectCard\";\nimport { Link } from \"react-router-dom\";\nimport \"./OurProjects.less\";\nimport { IProjects } from \"../../../../models/Project\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { fetchLandingProjects } from \"../../../../services/ProjectService\";\n\nfunction OurProjects() {\n const [projects, setProjectsList] = useState();\n const fetchData = useCallback(async () => {\n const svc: any = await fetchLandingProjects();\n setProjectsList(svc);\n }, []);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n let i = 0;\n function formatNumberWithLeadingZero(num: number): string {\n return num.toString().padStart(2, '0');\n }\n return (\n
\n

Projects

\n

\n Regardless of the industry, our work stands out. Take a look at some of the projects we have delivered for our clients.\n

\n\n
\n {projects && projects.data.map(project => {\n return (\n \n );\n })}\n
\n\n

\n See more\n

\n
\n );\n}\n\nexport default OurProjects;\n","import dotenv from 'dotenv';\n\ndotenv.config();\nconst strapiBaseUrl = process.env.REACT_APP_STRAPI_API_URL;\nconst accessToken = process.env.REACT_APP_ACCESS_TOKEN;\n\nconst servicesEndpoint = `${strapiBaseUrl}/services`;\n\nconst fetchConfig = {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n};\n\nexport async function fetchServices() {\n try {\n const response = await fetch(`${servicesEndpoint}?populate=*&sort[1]=publishedAt:desc`, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}","import { HashLink as Link } from \"react-router-hash-link\";\nimport Section from \"../../../Section\";\nimport \"./WhatWeDo.less\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { IServices } from \"../../../../models/Service\";\nimport { fetchServices } from \"../../../../services/ServiceService\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nfunction WhatWeDo() {\n const [services, setServicesList] = useState();\n const fetchData = useCallback(async () => {\n const svc: any = await fetchServices();\n setServicesList(svc);\n }, []);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n return (\n
\n

Our services

\n

\n To guide you through the extraordinary possibilities of the digital world, we have created a unique service offering.\n

\n\n
\n {services &&\n services.data.map(service => {\n return (\n \n
\n \"\"\n \n

{service.attributes.title}

\n \n
\n
\n );\n })}\n
\n
\n );\n}\n\nexport default WhatWeDo;\n","export default __webpack_public_path__ + \"static/media/Team1.163533ce.jpg\";","export default __webpack_public_path__ + \"static/media/Team2.aaf3b5e6.jpg\";","export default __webpack_public_path__ + \"static/media/Team3.b2fbf178.jpg\";","export default __webpack_public_path__ + \"static/media/Creative.8447ac5b.jpg\";","export default __webpack_public_path__ + \"static/media/AvatarDino.5bfee7e6.svg\";","export default __webpack_public_path__ + \"static/media/AvatarFilip.5f94fb56.svg\";","export default __webpack_public_path__ + \"static/media/AvatarMirko.40c12d62.svg\";","export default __webpack_public_path__ + \"static/media/AvatarFilipG.f80d21cb.svg\";","import Section from \"../../../Section\";\nimport teamImg1 from \"./images/Team1.jpg\";\nimport teamImg2 from \"./images/Team2.jpg\";\nimport teamImg3 from \"./images/Team3.jpg\";\nimport creativeImg from \"./images/Creative.jpg\";\nimport DinoIcon from \"./images/AvatarDino.svg\";\nimport FilipIcon from \"./images/AvatarFilip.svg\";\nimport MirkoIcon from \"./images/AvatarMirko.svg\";\nimport FilipGIcon from \"./images/AvatarFilipG.svg\";\nimport \"./WhoWeAre.less\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nfunction WhoWeAre() {\n return (\n
\n

Who we are

\n

\n In 1979 Douglas Adams published The Hitchhiker's Guide to the Galaxy. In this comedy SF he used the number 42 as an answer to the ultimate question of life, universe and everything. \n To us Adam's answer has signified that many of our unknowns are due to ways in which we formulate questions. And that's why we've named our digital agency Project42. \n We don't presume to have all the answers. Instead, we strive to ask the right questions.\n

\n\n
\n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n \n \"\"\n \n
\n\n

Meet some of our team

\n
\n \n
\n \"CEO\n
\n

Dino

\n

CEO

\n
\n
\n
\n \n
\n \"Creative\n
\n

Mirko

\n

Creative

\n

Director

\n
\n
\n
\n \n
\n \"Development\n
\n

Filip

\n

Development

\n

Team Lead

\n
\n
\n
\n \n
\n \"Technical\n
\n

Filip

\n

Technical

\n

Director

\n
\n
\n
\n
\n
\n );\n}\n\nexport default WhoWeAre;\n","import Home from \"./Sections/Home/Home\";\nimport OurProjects from \"./Sections/OurProjects/OurProjects\";\nimport WhatWeDo from \"./Sections/WhatWeDo/WhatWeDo\";\nimport WhoWeAre from \"./Sections/WhoWeAre/WhoWeAre\";\n\nfunction Landing() {\n return (\n <>\n \n \n \n \n \n );\n}\n\nexport default Landing;\n","import Section from \"../../../Section\";\nimport \"./TeamHome.less\";\n\nfunction TeamHome() {\n return (\n
\n

An agency to be reckoned with.

\n
\n

\n Project42 is your go-to agency for high quality outsourcing of all your tech\n needs.\n

\n
\n
\n );\n}\n\nexport default TeamHome;\n","export default __webpack_public_path__ + \"static/media/Team1.cd93a100.jpg\";","export default __webpack_public_path__ + \"static/media/Team2.e35141f8.jpg\";","export default __webpack_public_path__ + \"static/media/Team3.6fa8b6c1.jpg\";","import Section from \"../../../Section\";\nimport \"./AboutUs.less\";\n\nimport teamImg1 from \"./images/Team1.jpg\";\nimport teamImg2 from \"./images/Team2.jpg\";\nimport teamImg3 from \"./images/Team3.jpg\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nfunction AboutUs() {\n return (\n
\n

About Us

\n

\n A collective of highly skilled individuals who enjoy all things\n tech. What started as just a few enthusiastic programmers is now a group of experts\n ranging from developers to business analysts and creatives of all sorts.\n

\n\n \n \"\"\n \n\n
\n
\n

Skillful & determined

\n

\n Our team consists of young enthusiasts who bring creativity and very diverse\n skillsets to the table. When we put our heads together, we find unexpected\n and out-of-the-box solutions that exceed clients’ expectations. That means\n we have a lot of tricks up our sleeve that you can’t get elsewhere.\n

\n
\n \n
\n \"\"\n
\n
\n
\n
\n
\n

Passionate & dedicated

\n

\n Enjoyment is the key ingredient in our work. We love setting new challenges\n out for ourselves. This attitude translates into our relationships with\n clients, and they feel our commitment.\n

\n
\n \n
\n \"\"\n
\n
\n
\n
\n );\n}\n\nexport default AboutUs;\n","export default __webpack_public_path__ + \"static/media/Story.4ff0b6ae.jpg\";","import Section from \"../../../Section\";\nimport \"./OurStory.less\";\n\nimport storyImg from \"./images/Story.jpg\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nfunction OurStory() {\n return (\n
\n

Our Story

\n\n
\n
\n \n \"\"\n \n
\n\n
\n

\n After getting his PhD as one of the youngest students at his faculty, Dino\n Mileta (Project42’s founding father), went on to work in various energy,\n telecommunications and IT companies. Although he gathered invaluable\n experience on his way, he had a dream of creating his own story. That is why\n he started Uprise, Project42’s parent company. Since then, Uprise has become\n more and more successful in developing software development and providing\n consulting services in the energy sector.\n

\n

\n All the while, Dino has been intrigued by using his technical knowledge in\n more creative disciplines. That is how the idea of Project42 was born. We\n have since been growing in size and experience. And although we are a young\n company, we already have quite a few interesting projects under our belt and\n are looking forward to adding new ones.\n

\n
\n
\n
\n );\n}\n\nexport default OurStory;\n","var _defs, _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgQuotesIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 177.45 126.75\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#f7f7f7;}\"))), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"quotes_icon\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M221.82,484.75h38L285.2,434V358h-76v76h38Zm101.4,0h38L386.6,434V358h-76v76h38Z\",\n transform: \"translate(-209.15 -358)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuotesIcon);\nexport default __webpack_public_path__ + \"static/media/quotes_icon.5e1beff2.svg\";\nexport { ForwardRef as ReactComponent };","import { Carousel } from \"react-responsive-carousel\";\nimport { IQuote } from \"../../models/Quote\";\nimport { ReactComponent as QuoteLogo } from \"./quotes_icon.svg\";\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\nimport \"./Quotes.less\";\n\nexport interface IQuotesProps {\n quotes: IQuote[];\n color?: string;\n}\n\nexport const Quotes = ({ quotes, color }: IQuotesProps) => {\n return (\n \n {quotes.map((quote, index) => {\n return (\n
\n
\n \n

{quote.content}

\n
\n\n
\n
{quote.name}
\n
{quote.credentials}
\n
\n
\n );\n })}\n \n );\n};\n","import { Quotes } from \"../../../../components/Quotes/Quotes\";\nimport Section from \"../../../Section\";\nimport { IQuote } from \"../../../../models/Quote\";\nimport \"./QuotesSection.less\";\n\nconst quotes: IQuote[] = [\n {\n content: `I have had the chance to cooperate with Project42 on a \n complex project that involved a lot of subject-matter expertise. \n The team really made a huge effort to learn everything related to \n my industry, which resulted in a great piece of software that \n really helps our everyday business operations.`,\n name: \"Ivan Markić, Managing Director\",\n credentials: \"Prona-Grad\",\n },\n {\n content: `Coming from a non-technical background, with just an \n idea in my head, it was really important for me to find people \n who could translate my thoughts into an app. Project42 are not\n just great professionals but also really nice to work with on a\n personal level.`,\n name: \"Milan Belojević, Managing Director\",\n credentials: \"MB Capital Consulting GmbH\",\n },\n {\n content: `What we loved most about the team was the communication. \n Every step of the project was thoroughly explained and we didn’t\n feel left out of the decision-making. The final app was everything\n we asked for and more. The high level of code quality and the\n attention to details were very satisfying.`,\n name: \"Dario Mišković, Managing Director\",\n credentials: \"Medical Yoga Center\",\n },\n {\n content: `Given the complexity of the project and the little time \n that we had for completing it, it was important to us to find a partner that\n we could count on in terms of speed and professionalism. Project42 exceeded\n our expectations. They went above and beyond to reach our deadlines and were\n very detail-oriented in the 3D representations of our products. We’ll be\n looking forward to collaborating with them again.`,\n name: \"Luka Petro, Program Manager at DOK-ING\",\n credentials: \"DOK-ING\",\n },\n];\n\nfunction QuotesSection() {\n return (\n
\n

See what our clients say about us

\n \n
\n );\n}\n\nexport default QuotesSection;\n","import TeamHome from \"./Sections/TeamHome/TeamHome\";\nimport AboutUs from \"./Sections/AboutUs/AboutUs\";\nimport OurStory from \"./Sections/OurStory/OurStory\";\nimport QuotesSection from \"./Sections/QuotesSection/QuotesSection\";\n\nfunction Team() {\n return (\n <>\n \n \n \n \n \n );\n}\n\nexport default Team;\n","import Section from \"../../Section\";\nimport \"../Careers.less\";\n\nfunction CareersHome() {\n return (\n
\n

Join our team & let's create great things together

\n
\n );\n}\n\nexport default CareersHome;\n","import Section from \"../../Section\";\nimport \"../Careers.less\";\n\nfunction CareersPositions() {\n return (\n
\n

Open Positions

\n

\n Don't see your position here?
\n Send us an open application with your CV and a short motivational letter to{\" \"}\n \n info@project42.agency\n \n

\n
\n );\n}\n\nexport default CareersPositions;\n","import Section from \"../../Section\";\nimport \"../Careers.less\";\n\nfunction CareersGeneric() {\n return (\n
\n

\n If our fun projects have you curious, come join team Project42
\n Do so especially if you...\n

\n\n
    \n
  • want to work on dynamic and interesting projects
  • \n
  • want to try out new gadgets and learn new technologies
  • \n
  • enjoy a relaxed and friendly atmosphere
  • \n
  • want a merit-based approach to promotions and bonuses
  • \n
  • want to develop your skills with courses, books, conferences
  • \n
  • enjoy cake and beer... not necessarily together
  • \n
  • want to work in a brand new, cool office in the city center
  • \n
\n
\n );\n}\n\nexport default CareersGeneric;\n","import CareersHome from \"./Sections/CareersHome\";\nimport CareersPositions from \"./Sections/CareersPositions\";\nimport CareersGeneric from \"./Sections/CareersGeneric\";\n\nimport \"../Section.less\";\nimport \"./Careers.less\";\n\nfunction Careers() {\n return (\n
\n \n \n \n
\n );\n}\n\nexport default Careers;\n","import Section from \"../../Section\";\nimport \"../Work.less\";\n\nfunction WorkHome() {\n return (\n
\n

\n Ideas are great. Finished products are even better. See how we’ve helped others make\n that leap.\n

\n
\n );\n}\n\nexport default WorkHome;\n","import Section from \"../../Section\";\nimport { ProjectCard } from \"../../../components/ProjectCard/ProjectCard\";\nimport \"../Work.less\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { IProjects } from \"../../../models/Project\";\nimport { fetchProjects } from \"../../../services/ProjectService\";\n\nfunction AllProjects() {\n const [projects, setProjectsList] = useState();\n const fetchData = useCallback(async () => {\n const svc: any = await fetchProjects();\n setProjectsList(svc);\n }, []);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n let i = 0;\n function formatNumberWithLeadingZero(num: number): string {\n return num.toString().padStart(2, '0');\n }\n return (\n
\n

Our projects

\n\n {projects &&\n projects.data.map(project => {\n return (\n \n );\n })}\n
\n );\n}\n\nexport default AllProjects;\n","import WorkHome from \"./Sections/WorkHome\";\nimport AllProjects from \"./Sections/AllProjects\";\n\nfunction Work() {\n return (\n
\n \n \n
\n );\n}\n\nexport default Work;\n","import Section from \"../../Section\";\nimport \"../Services.less\";\n\nfunction ServicesHome() {\n return (\n
\n

\n Where great\n
\n things await\n

\n
\n );\n}\n\nexport default ServicesHome;\n","import { HashLink as Link } from \"react-router-hash-link\";\nimport Section from \"../../Section\";\nimport { IServices } from \"../../../models/Service\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst ServicesList: React.FC<{ services: IServices | undefined }> = (props) => {\n const { services } = props;\n return (\n
\n

Services

\n {services &&\n services.data.map(service => {\n return (\n
\n \"\"\n \n

\n {service.attributes.title}\n

\n \n {service.attributes.description_list || ''}\n
\n );\n })}\n
\n );\n}\n\nexport default ServicesList;\n","export default __webpack_public_path__ + \"static/media/Slash.49e4899f.svg\";","import Section from \"../../Section\";\nimport slashIcon from \"./Slash.svg\";\nimport { IServices } from \"../../../models/Service\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst ServicesDetailed: React.FC<{ services: IServices | undefined }> = (props) => {\n const { services } = props;\n let i = 0;\n function formatNumberWithLeadingZero(num: number): string {\n return num.toString().padStart(2, '0');\n }\n return (\n
\n {services &&\n services.data.map(service => {\n return (\n
\n
\n

{formatNumberWithLeadingZero(++i)}

\n
\n

\n }}\n />\n

\n \"\"\n
\n

\n }}\n />\n

\n
\n
\n
\n }}\n />\n
\n
\n

\n }}\n />\n

\n
\n
\n
\n
\n }}\n />\n
\n
\n }}\n />\n
\n
\n
\n );\n })}\n
\n );\n}\n\nexport default ServicesDetailed;\n","import ServicesHome from \"./Sections/ServicesHome\";\nimport ServicesList from \"./Sections/ServicesList\";\nimport ServicesDetailed from \"./Sections/ServicesDetailed\";\nimport \"./Services.less\";\nimport { IServices } from \"../../models/Service\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { fetchServices } from \"../../services/ServiceService\";\n\nfunction Services() {\n const [servicesList, setServicesList] = useState();\n const fetchData = useCallback(async () => {\n const svc: any = await fetchServices();\n setServicesList(svc);\n }, []);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n return (\n
\n \n \n \n
\n );\n}\n\nexport default Services;\n","import Section from \"../Section\";\nimport \"./Legal.less\";\n\nfunction Legal() {\n return (\n
\n

Legal info

\n\n

Project 42 is a limited company dedicated to information technology services, development, design and animation.

\n

\n The company is registered with the Commercial Court in Zagreb under registration number MBS 081437129.\n

\n

Base capital of the company of 20.000,00 has been paid in full.

\n

Members of the Management Board: Dino Mileta.

\n\n
\n\n

Project42 Technologies d.o.o.

\n

HQ: Petrova ulica 15, Zagreb

\n

Office: Trg Drage Iblera 10, Zagreb

\n

Email: info@project42.agency

\n

Phone: (+385)989669587

\n

OIB: 68013671772

\n

IBAN: HR3524020061101094704

\n

Name of Bank: Erste & Steiermarkische Bank d.d

\n
\n );\n}\n\nexport default Legal;\n","import Section from \"../Section\";\nimport \"./Legal.less\";\n\nfunction Privacy() {\n return (\n
\n

Privacy Policy

\n\n

Effective date: January 11, 2022

\n

Last edit: February 14th, 2022

\n

\n Project 42. agency (\"us\", \"we\", or \"our\") operates the https://project42.agency/\n website (hereinafter referred to as the \"Service\").\n

\n

\n We use your data to provide and improve the Service. By using the Service, you agree\n to the collection and use of information in accordance with this policy. Unless\n otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have\n the same meanings as in our Terms and Conditions.\n

\n\n

Definitions

\n
    \n
  • \n Service - Service means the https://project42.agency/ website.\n
  • \n
  • \n Personal Data - Personal Data means data about a living individual who\n can be identified from those data (or from those and other information either in\n our possession or likely to come into our possession).\n
  • \n
  • \n Usage Data - Usage Data is data collected automatically either generated\n by using the Service or from the Service infrastructure itself (for example, the\n duration of a page visit).\n
  • \n
  • \n Cookies - Cookies are small files stored on your device (computer or\n mobile device) that allow us to improve your browsing experience.\n
  • \n
\n\n

Information Collection and Use

\n

\n We collect several different types of information for various purposes to provide\n and improve our Service to you.\n

\n Personal Data\n

\n While using our Service, we may ask you to provide us with certain personally\n identifiable information that can be used to contact or identify you (\"Personal\n Data\"). Personally identifiable information may include, but is not limited to:\n

\n
    \n
  • Email address
  • \n
  • Cookies and Usage Data
  • \n
\n Usage Data\n

\n We may also collect information that your browser sends whenever you visit our\n Service or when you access the Service by or through a mobile device (\"Usage Data\").\n

\n

\n This Usage Data may include information such as your computer's Internet Protocol\n address (e.g. IP address), browser type, browser version, the pages of our Service\n that you visit, the time and date of your visit, the time spent on those pages,\n unique device identifiers and other diagnostic data.\n

\n

\n When you access the Service with a mobile device, this Usage Data may include\n information such as the type of mobile device you use, your mobile device unique ID,\n the IP address of your mobile device, your mobile operating system, the type of\n mobile Internet browser you use, unique device identifiers and other diagnostic\n data.\n

\n Tracking & Cookies Data\n

\n We use cookies and similar tracking technologies to track the activity on our\n Service and we hold certain information.\n

\n

\n Cookies are files with a small amount of data which may include an anonymous unique\n identifier. Cookies are sent to your browser from a website and stored on your\n device. Other tracking technologies are also used such as beacons, tags and scripts\n to collect and track information and to improve and analyse our Service.\n

\n

\n You can instruct your browser to refuse all cookies or to indicate when a cookie is\n being sent. However, if you do not accept cookies, you may not be able to use some\n portions of our Service.\n

\n\n

What cookies do we use? How long do we store them?

\n
    \n
  • \n Session Cookies - These cookies are necessary to provide you with\n services available through the Site and so that you can use some of its\n features. These cookies are also used to allow for a coherent experience moving\n between different pages. These are temporary cookie files, which are erased when\n you close your browser.\n
  • \n
  • \n Persistent Cookies - They are stored on a user's device to help remember\n information, settings, preferences, or sign-on credentials that a user has\n previously saved. This helps create a convenient and faster website experience.\n These files stay in one of your browser's subfolders until you delete them\n manually or your browser deletes them based on the duration period of 12 months\n contained within the persistent cookie's file.\n
  • \n
  • \n Third-Party Cookies - a third-party cookie is one that is placed on a\n user’s hard disk by a Web site from a domain other than the one a user is\n visiting. They are retained until you manually disable them in your Settings.\n
  • \n
\n\n

Use of Data

\n

Uprise d.o.o. uses the collected data for various purposes:

\n
    \n
  • To provide and maintain our Service
  • \n
  • To notify you about changes to our Service
  • \n
  • \n To allow you to participate in interactive features of our Service when you\n choose to do so\n
  • \n
  • To provide customer support
  • \n
  • \n To gather analysis or valuable information so that we can improve our Service\n
  • \n
  • To monitor the usage of our Service
  • \n
  • To detect, prevent and address technical issues
  • \n
\n\n

What are your rights?

\n
    \n
  • the right to access data provided to us
  • \n
  • \n the right to delete your information under certain circumstances (i.e., if the\n data provided to us is no longer relevant for processing or was proven to be\n unlawfully processed)\n
  • \n
  • the right to withdraw your consent
  • \n
\n\n

Contact Us

\n

\n If you have any questions or petitions regarding this Privacy Policy, please contact\n us by email:{\" \"}\n \n info@project42.agency\n \n . We will contact you as soon as possible and resolve your issue or query within 30\n days maximum.\n

\n\n

Transfer of Data

\n

\n Your information, including Personal Data, may be transferred to - and maintained on\n - computers located outside of your state, province, country or other governmental\n jurisdiction where the data protection laws may differ from those of your\n jurisdiction.\n

\n

\n If you are located outside Croatia and choose to provide information to us, please\n note that we transfer the data, including Personal Data, to Croatia and process it\n there.\n

\n

\n Your consent to this Privacy Policy followed by your submission of such information\n represents your agreement to that transfer.\n

\n

\n Uprise d.o.o. will take all the steps reasonably necessary to ensure that your data\n is treated securely and in accordance with this Privacy Policy and no transfer of\n your Personal Data will take place to an organisation or a country unless there are\n adequate controls in place including the security of your data and other personal\n information\n

\n\n

Disclosure of Data

\n Legal Requirements\n

\n Uprise d.o.o. may disclose your Personal Data in the good faith belief that such\n action is necessary to:\n

\n
    \n
  • To comply with a legal obligation
  • \n
  • To protect and defend the rights or property of Uprise d.o.o.
  • \n
  • \n To prevent or investigate possible wrongdoing in connection with the Service\n
  • \n
  • To protect the personal safety of users of the Service or the public
  • \n
  • To protect against legal liability
  • \n
\n\n

Security of Data

\n

\n The security of your data is important to us but remember that no method of\n transmission over the Internet or method of electronic storage is 100% secure. While\n we strive to use commercially acceptable means to protect your Personal Data, we\n cannot guarantee its absolute security.\n

\n\n

Service Providers

\n

\n We may employ third party companies and individuals to facilitate our Service\n (\"Service Providers\"), provide the Service on our behalf, perform Service-related\n services or assist us in analysing how our Service is used.\n

\n

\n These third parties have access to your Personal Data only to perform these tasks on\n our behalfand are obligated not to disclose or use it for any other purpose.\n

\n\n

Links to Other Sites

\n

\n Our Service may contain links to other sites that are not operated by us. If you\n click on a third-party link, you will be directed to that third party's site. We\n strongly advise you to review the Privacy Policy of every site you visit.\n

\n

\n We have no control over and assume no responsibility for the content, privacy\n policies or practices of any third-party sites or services.\n

\n\n

Children's Privacy

\n

Our Service does not address anyone under the age of 18 (\"Children\").

\n

\n We do not knowingly collect personally identifiable information from anyone under\n the age of 18. If you are a parent or guardian and you are aware that your Child has\n provided us with Personal Data, please contact us. If we become aware that we have\n collected Personal Data from children without verification of parental consent, we\n take steps to remove that information from our servers.\n

\n\n

Changes to This Privacy Policy

\n

\n We may update our Privacy Policy from time to time. We will notify you of any\n changes by posting the new Privacy Policy on this page.\n

\n

\n We will let you know via email and/or a prominent notice on our Service, prior to\n the change becoming effective and update the \"effective date\" at the top of this\n Privacy Policy\n

\n

\n You are advised to review this Privacy Policy periodically for any changes. Changes\n to this Privacy Policy are effective when they are posted on this page.\n

\n

Privacy Policy of https://project42.agency/

\n
\n );\n}\n\nexport default Privacy;\n","import dotenv from 'dotenv';\n\ndotenv.config();\n\nconst strapiBaseUrl = process.env.REACT_APP_STRAPI_API_URL;\nconst accessToken = process.env.REACT_APP_ACCESS_TOKEN;\n\n\nconst articlesEndpoint = `${strapiBaseUrl}/posts`;\n\nconst fetchConfig = {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n};\n\nexport async function fetchBlogPosts() {\n try {\n const response = await fetch(`${articlesEndpoint}?fields[0]=title&fields[1]=slug&fields[2]=summary&fields[3]=publishedAt&populate[image][fields][0]=name&populate[image][fields][1]=url&sort[1]=publishedAt:desc`, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}\n\nexport async function fetchSinglePost(slug: string) {\n try {\n const endpointUrl = `${articlesEndpoint}?filters[slug][$eq]=${slug}&populate=*`;\n\n const response = await fetch(endpointUrl, fetchConfig);\n if (!response.ok) {\n throw new Error('Failed to fetch data from Strapi backend.');\n }\n const responseData = await response.json();\n return responseData;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n}\n\n","import Section from \"../../Section\";\nimport \"../Blog.less\";\nimport { fetchBlogPosts } from \"../../../services/BlogPostService\";\nimport { IBlogPage } from \"../../../models/BlogPost\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport dateformat from \"dateformat\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nfunction AllPosts() {\n const [blogPage, setBlogPage] = useState();\n const fetchBlogPage = useCallback(async () => {\n const pst = await fetchBlogPosts();\n setBlogPage(pst);\n }, []);\n\n useEffect(() => {\n fetchBlogPage();\n }, [fetchBlogPage]);\n return (\n
\n

Blog

\n\n {blogPage &&\n blogPage.data.map(post => {\n return (\n
\n \n
\n {dateformat(post?.attributes.publishedAt, \"mmm dd, yyyy\")}\n \n

{post?.attributes.title}

\n \n\n

{post?.attributes.summary}

\n
\n
\n {post?.attributes.image.data && (\n \n
\n \n
\n
\n )}\n
\n );\n })}\n
\n );\n}\n\nexport default AllPosts;\n","import AllPosts from \"./Sections/AllPosts\";\nimport \"./Blog.less\";\nfunction Blog() {\n return (\n
\n \n
\n );\n}\n\nexport default Blog;\n","import { useCallback, useEffect, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { IPost } from \"../../models/BlogPost\";\nimport Section from \"../Section\";\nimport \"../Section.less\";\nimport { fetchSinglePost } from \"../../services/BlogPostService\";\nimport \"./Post.less\";\nimport dateformat from \"dateformat\";\nimport ReactMarkdown from \"react-markdown\";\nimport { Helmet } from \"react-helmet\";\n\nconst Fade = require(\"react-reveal/Fade\");\nconst Post: React.FC = () => {\n const { slug } = useParams<{ slug: string }>();\n const [post, setPost] = useState(null);\n\n const fetchPost = useCallback(async () => {\n const pst = await fetchSinglePost(slug);\n setPost(pst.data[0]);\n }, [slug]);\n\n useEffect(() => {\n fetchPost();\n }, [fetchPost]);\n return (\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n
\n {post?.attributes.image.data && (\n \n \n \n )}\n

{post?.attributes.title}

\n {dateformat(post?.attributes.publishedAt, \"mmm dd, yyyy\")}\n

\n }}\n />\n

\n
\n
\n );\n}\n\nexport default Post;\n","import ReactPlayer from \"react-player\";\nimport { IProject } from \"../../../../models/Project\";\nimport Section from \"../../../Section\";\nimport ReactMarkdown from \"react-markdown\";\n\nconst Fade = require(\"react-reveal/Fade\");\nconst ProjectDesign: React.FC<{ project: IProject | null }> = (props) => {\n const { project } = props;\n let colors = project?.attributes.colors?.split(\"\\n\");\n return (\n
\n {project?.attributes.designVideo.data &&\n (
\n

Animation

\n
\n \n
\n
\n
)\n }\n {(project?.attributes.colors && project.attributes.fonts) &&\n (
\n

Colors

\n\n
\n {colors && colors.map(color => {\n return (\n
\n
\n

{color}

\n
\n );\n })}\n
\n

Font

\n }}\n />\n

Responsive design

\n
)\n }\n
\n );\n}\n\nexport default ProjectDesign;\n","import ReactMarkdown from \"react-markdown\";\nimport { IProject } from \"../../../../models/Project\";\nimport Section from \"../../../Section\";\n\nconst ProjectHome: React.FC<{ project: IProject | null }> = (props) => {\n const { project } = props;\n let client = project?.attributes.home.client?.split(\"\\n\");\n let services = project?.attributes.home.services?.split(\"\\n\");\n let industry = project?.attributes.home.industry?.split(\"\\n\");\n let technology = project?.attributes.home.technology?.split(\"\\n\");\n return (\n
\n

{project?.attributes.title}

\n {project?.attributes.homeText && (\n

\n }}\n />\n

\n )}\n
\n
\n
CLIENT
\n {client && client.map(row => {\n return (\n
{row}
\n );\n })\n }\n
\n
\n
SERVICES
\n {services && services.map(row => {\n return (\n
{row}
\n );\n })\n }\n
\n
\n
INDUSTRY
\n {industry && industry.map(row => {\n return (\n
{row}
\n );\n })\n }\n
\n
\n
TECHNOLOGY
\n {technology && technology.map(row => {\n return (\n
{row}
\n );\n })\n }\n
\n
\n
\n );\n}\n\nexport default ProjectHome;\n","import ReactMarkdown from \"react-markdown\";\nimport { IProject } from \"../../../../models/Project\";\nimport Section from \"../../../Section\";\n\nconst Fade = require(\"react-reveal/Fade\");\n\nconst ProjectScope: React.FC<{ project: IProject | null }> = (props) => {\n const { project } = props;\n return (\n
\n

\n }}\n />\n

\n \n \"Project\"\n \n

\n {project?.attributes.goal && ( }}\n />)}\n

\n
\n );\n}\n\nexport default ProjectScope;\n","import ProjectDesign from \"./Sections/ProjectDesign\";\nimport ProjectHome from \"./Sections/ProjectHome\";\nimport ProjectScope from \"./Sections/ProjectScope\";\nimport \"../../Section.less\";\nimport \"../Projects.less\";\nimport { useParams } from \"react-router-dom\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { IProject } from \"../../../models/Project\";\nimport { fetchSingleProject } from \"../../../services/ProjectService\";\n\nfunction Project() {\n const { slug } = useParams<{ slug: string }>();\n const [project, setProject] = useState(null);\n\n const fetchProject = useCallback(async () => {\n const pjt = await fetchSingleProject(slug);\n setProject(pjt.data[0]);\n }, [slug]);\n\n useEffect(() => {\n fetchProject();\n }, [fetchProject]);\n return (\n
\n \n \n \n
\n );\n}\n\nexport default Project;\n","import { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { ToggleContact } from \"../../../actions/pageActions\";\nimport Landing from \"../../Landing/Landing\";\n\nexport const ContactRouteWrapper = () => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(ToggleContact());\n }, [dispatch]);\n\n //return Home component\n return ;\n};","import { useEffect } from \"react\";\nimport { Layout } from \"./containers/Layout/Layout\";\nimport { Route, Switch, BrowserRouter as Router, useLocation } from \"react-router-dom\";\nimport Landing from \"./containers/Landing/Landing\";\nimport Team from \"./containers/Team/Team\";\nimport Careers from \"./containers/Careers/Careers\";\nimport Work from \"./containers/Work/Work\";\nimport Services from \"./containers/Services/Services\";\nimport Legal from \"./containers/Legal/Legal\";\nimport Privacy from \"./containers/Legal/Privacy\";\n/*\nimport { ContactPage } from \"./containers/Contact/ContactPage/ContactPage\";\n*/\nimport Blog from \"./containers/Blog/Blog\";\nimport Post from \"./containers/Post/Post\";\nimport Project from \"./containers/Projects/Project/Project\";\nimport { ContactRouteWrapper } from \"./containers/Contact/ContactRouteWrapper/ContactRouteWrapper\";\n\n// Scrolling on top when changing pages!\nexport function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n document.querySelector(\"#scrollable\")?.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n\nfunction App() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {/*\n \n\n */}\n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { Reducer } from \"redux\";\nimport { PageStateActionType, TOGGLE_CONTACT, TOGGLE_MENU } from \"../actions/pageActions\";\n\nexport interface PageState {\n menuOpen: boolean;\n contactOpen: boolean;\n}\n\nlet initialState: PageState = {\n menuOpen: false,\n contactOpen: false\n};\n\nexport const pageStateReducer: Reducer = (\n state: PageState = initialState,\n action: PageStateActionType\n): PageState => {\n switch(action.type) {\n case TOGGLE_CONTACT:\n return {...state, contactOpen: !state.contactOpen, menuOpen: false }\n case TOGGLE_MENU:\n return {...state, menuOpen: !state.menuOpen, contactOpen: false }\n default:\n return state;\n }\n};","export const SET_TOAST_MESSAGE = \"SET_TOAST_MESSAGE\";\nexport const SHOW_TOAST_MESSAGE = \"SHOW_TOAST_MESSAGE\";\nexport const HIDE_TOAST_MESSAGE = \"HIDE_TOAST_MESSAGE\";\n\nexport const SetToastMessage = (text: string, success: boolean) => {\n return { type: SET_TOAST_MESSAGE, text, success };\n};\nexport const ShowToastMessage = () => {\n return { type: SHOW_TOAST_MESSAGE };\n};\nexport const HideToastMessage = () => {\n return { type: HIDE_TOAST_MESSAGE };\n};\n","import { Reducer } from \"redux\";\nimport {\n SET_TOAST_MESSAGE,\n SHOW_TOAST_MESSAGE,\n HIDE_TOAST_MESSAGE,\n} from \"../actions/toastMessageActions\";\n\nexport interface ToastMessageState {\n showMessage: boolean;\n text: string;\n success: boolean;\n}\n\nconst initialState: ToastMessageState = {\n showMessage: false,\n text: \"\",\n success: false,\n};\n\nexport const toastMessageReducer: Reducer = (\n state: ToastMessageState = initialState,\n action: any\n): ToastMessageState => {\n switch (action.type) {\n case SET_TOAST_MESSAGE:\n let text = action.text as string;\n if (text.length > 100) text = text.substring(0, text.lastIndexOf(\" \", 100)) + \"...\";\n return { ...state, text: text, success: action.success };\n case SHOW_TOAST_MESSAGE:\n return { ...state, showMessage: true };\n case HIDE_TOAST_MESSAGE:\n return { ...state, showMessage: false };\n default:\n return state;\n }\n};\n","import ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport configureStore from \"./store/configureStore\";\nimport { Provider } from \"react-redux\";\nimport { HideToastMessage, SetToastMessage, ShowToastMessage } from \"./actions/toastMessageActions\";\nimport \"./index.less\";\n\nconst store = configureStore();\n\nexport const toast = (text: string, success: boolean, timeout: number = 3000) => {\n const dispatch = store.dispatch;\n dispatch(SetToastMessage(text, success));\n dispatch(ShowToastMessage());\n setTimeout(() => dispatch(HideToastMessage()), timeout);\n};\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","import { combineReducers, createStore } from \"redux\";\nimport { PageState, pageStateReducer as pageState } from \"./pageStateReducer\";\nimport { toastMessageReducer as toastMessage, ToastMessageState } from \"./toastMessageReducer\";\n\nexport interface AppState {\n pageState: PageState;\n toastMessage: ToastMessageState;\n}\n\nexport default function configureStore(initialState?: AppState) {\n const rootReducer = combineReducers({\n pageState,\n toastMessage,\n });\n\n const enhancers = [];\n const windowIfDefined = typeof window === \"undefined\" ? null : (window as any);\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\n }\n\n return createStore(rootReducer, initialState, ...enhancers);\n}\n"],"sourceRoot":""}