CINXE.COM
Multi-Service App UI for React Native – User and Vendor Apps Preview - CodeCanyon
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="//s3.envato.com" /> <link rel="preload" href="https://public-assets.envato-static.com/assets/generated_sprites/logos-20f56d7ae7a08da2c6698db678490c591ce302aedb1fcd05d3ad1e1484d3caf9.png" as="image" /> <link rel="preload" href="https://public-assets.envato-static.com/assets/generated_sprites/common-5af54247f3a645893af51456ee4c483f6530608e9c15ca4a8ac5a6e994d9a340.png" as="image" /> <meta http-equiv="X-UA-Compatible" content="chrome=1"> <title>Multi-Service App UI for React Native – User and Vendor Apps Preview - CodeCanyon</title> <meta name="description" content="&lt;h1&gt;Multi-Service App UI for React Native – User and Vendor Apps&lt;/h1&gt; &lt;a href=&..."> <meta name="robots" content="noindex, nofollow" /> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1" /> <meta name="turbo-visit-control" content="reload"> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ window.dataLayer = window.dataLayer || []; //]]> </script> <script type="text/plain" nonce="nYmvnOS3Bv/M08wpn3pkLA==" data-cookieconsent="statistics"> //<![CDATA[ var container_env_param = ""; (function(w,d,s,l,i) { w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl+container_env_param; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-W8KL5Q5'); //]]> </script> <link rel="stylesheet" media="all" href="https://public-assets.envato-static.com/assets/market/core/index-6c69a94a8baf3f4c3819d01881b93c5df72551f3f91ec87d2f599bb75ba7ca88.css" /> <link rel="stylesheet" media="all" href="https://public-assets.envato-static.com/assets/market/pages/preview/index-457550c0311c719db250e79989e7462091be593549fb6bcb3801c9182189d1e5.css" /> <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="https://public-assets.envato-static.com/assets/icons/favicons/apple-touch-icon-72x72-precomposed-ea6fb08063069270d41814bdcea6a36fee5fffaba8ec1f0be6ccf3ebbb63dddb.png" sizes="72x72" /> <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="https://public-assets.envato-static.com/assets/icons/favicons/apple-touch-icon-114x114-precomposed-bab982e452fbea0c6821ffac2547e01e4b78e1df209253520c7c4e293849c4d3.png" sizes="114x114" /> <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="https://public-assets.envato-static.com/assets/icons/favicons/apple-touch-icon-120x120-precomposed-8275dc5d1417e913b7bd8ad048dccd1719510f0ca4434f139d675172c1095386.png" sizes="120x120" /> <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="https://public-assets.envato-static.com/assets/icons/favicons/apple-touch-icon-144x144-precomposed-c581101b4f39d1ba1c4a5e45edb6b3418847c5c387b376930c6a9922071c8148.png" sizes="144x144" /> <link rel="apple-touch-icon-precomposed" type="image/x-icon" href="https://public-assets.envato-static.com/assets/icons/favicons/apple-touch-icon-precomposed-c581101b4f39d1ba1c4a5e45edb6b3418847c5c387b376930c6a9922071c8148.png" /> <script src="https://public-assets.envato-static.com/assets/market/pages/full_screen_preview/index-90ba69e296c80625852fec522ed9e99c21b277646d120b98ce74d8778f2883a9.js" nonce="nYmvnOS3Bv/M08wpn3pkLA=="></script> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ //function to fix height of iframe! var calcHeight = function() { var headerDimensions = $('.preview__header').height(); $('.full-screen-preview__frame').height($(window).height() - headerDimensions); } $(document).ready(function() { calcHeight(); }); $(window).resize(function() { calcHeight(); }).load(function() { calcHeight(); }); //]]> </script> </head> <body> <div class="preview__header h-full-width h-position-fixed"> <div class="preview__envato-logo"> <a href="/item/multiservice-app-ui-for-react-native-user-and-vendor-apps/55035400">Envato Market</a> </div> <div class="preview__actions"> <div class="preview__action--buy"> <a class="e-btn--3d -color-primary" href="/item/multiservice-app-ui-for-react-native-user-and-vendor-apps/55035400">Buy now</a> </div> </div> </div> <div class="screenshots"> <div class="screenshots__list"> <a class="screenshots__thumbnail" href="?index=0"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_1.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=1"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_10.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=2"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_11.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=3"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_12.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=4"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_13.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=5"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_14.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=6"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_2.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=7"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_3.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=8"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_4.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=9"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_5.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=10"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_6.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=11"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_7.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=12"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_8.__thumbnail.jpg" /></a> <a class="screenshots__thumbnail" href="?index=13"><img src="https://s3.envato.com/files/537781642/screenshot/Screenshot_9.__thumbnail.jpg" /></a> </div> <div class="screenshots__description"> <h1 class="t-heading -size-m -color-light">Screenshot 1</h1> </div> <div class="screenshots__fullsize"> <img alt="Multi-Service App UI for React Native – User and Vendor Apps" src="https://s3.envato.com/files/537781642/screenshot/Screenshot_1.jpg" /> </div> </div> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ $(function(){viewloader.execute(Views);}); //]]> </script> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ (function() { function normalizeAttributeValue(value) { if (value === undefined || value === null) return undefined var normalizedValue if (Array.isArray(value)) { normalizedValue = normalizedValue || value .map(normalizeAttributeValue) .filter(Boolean) .join(', ') } normalizedValue = normalizedValue || value .toString() .toLowerCase() .trim() .replace(/&/g, '&') .replace(/'/g, "'") .replace(/\s+/g, ' ') if (normalizedValue === '') return undefined return normalizedValue } var pageAttributes = { app_name: normalizeAttributeValue('Marketplace'), app_env: normalizeAttributeValue('production'), app_version: normalizeAttributeValue('ae74f4f2fe1abc8e145ae4d1de11a56f712f302a'), page_type: normalizeAttributeValue('item'), page_location: window.location.href, page_title: document.title, page_referrer: document.referrer, ga_param: normalizeAttributeValue(''), event_attributes: null, user_attributes: { user_id: normalizeAttributeValue(''), market_user_id: normalizeAttributeValue(''), } } dataLayer.push(pageAttributes) dataLayer.push({ event: 'analytics_ready', event_attributes: { event_type: 'user', custom_timestamp: Date.now() } }) })(); //]]> </script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8KL5Q5" height="0" width="0" style="display:none;visibility:hidden" > </iframe> </noscript> <div id="affiliate-tracker" class="is-hidden" data-view="affiliatesTracker" data-cookiebot-enabled="true"></div> <script src="https://consent.cookiebot.com/uc.js" data-cbid="d10f7659-aa82-4007-9cf1-54a9496002bf" data-georegions="{"region":"US","cbid":"d9683f70-895f-4427-97dc-f1087cddf9d8"}" async="async" id="Cookiebot" nonce="nYmvnOS3Bv/M08wpn3pkLA=="></script> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ var ACCOUNTS = ["m"]; window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; var consentCookie = getCookie('CookieConsent'); if (consentCookie) { var hasConsent = Market.Helpers.CookieConsent.given('statistics'); if (hasConsent) { setupGoogleAnalytics(); loadGoogleAnalytics(); loadLinkingForAllAccounts(); } } else { setupGoogleAnalytics(); loadGoogleAnalytics(); loadLinkingForAllAccounts(); } window.addEventListener('CookiebotOnAccept', handleCookiebotAcceptDeclineEvent, false); window.addEventListener('CookiebotOnDecline', handleCookiebotAcceptDeclineEvent, false); function handleCookiebotAcceptDeclineEvent() { if (Cookiebot.consent.statistics) { if (!(window.ga && ga.create)) { setupGoogleAnalytics(); loadGoogleAnalytics(); loadLinkingForAllAccounts(); } } else { unloadGoogleAnalytics() } } function getCookie(name) { var name = name + "="; var decodedCookie = decodeURIComponent(document.cookie); var cookieContent = decodedCookie.split(';'); for(var i = 0; i < cookieContent.length; i++) { var c = cookieContent[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return false; } function delete_cookie_by_name(name) { document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; } function unloadGoogleAnalytics() { var payload = {"name":"m","allowLinker":true}; var accountId = "UA-11834194-12"; // Set the GA User Opt-out flag window['ga-disable-'+accountId] = true; // Do not explicitly make any further calls to ga() ga(payload.name+".remove"); // Delete any existing GA cookies (_ga, _gat & _gaid) and GA Client ID from localStorage delete_cookie_by_name('_ga'); delete_cookie_by_name('_gat'); delete_cookie_by_name('_gid'); // Delete LocalStorage Entries if (Market.Helpers.GaLsUtils.localStorageAvailable()) { var clientId = Market.Helpers.GaLsUtils.getClientId(); if (!clientId) { return; } Market.Helpers.GaLsUtils.removeClientId(); } // Do not transmit the Client ID to other sites upon navigation (i.e. autoLink) } function domLoaded() { return new Promise(resolve => { if ( document.readyState === 'interactive' || document.readyState === 'complete' ) { resolve() } else { document.addEventListener( 'DOMContentLoaded', () => { resolve() }, { capture: true, once: true, passive: true } ) } }) } function loadLinkingForAllAccounts() { domLoaded().then(() => { window._envGaTrackerNames = ACCOUNTS; for (var i = 0; i < ACCOUNTS.length; i++) { var t = ACCOUNTS[i]; ga(t+'.require', 'linker'); ga(t+'.require', 'linkid', 'linkid.js'); }; document.body.addEventListener('click', function(event) { decorateLink(event); }); document.body.addEventListener('contextmenu', function(event) { // Aside from a normal click, we need to handle the variety of ways users // can open a link in a new tab // Right click to open context menu decorateLink(event); }); document.body.addEventListener('mousedown', function(event) { // Aside from a normal click, we need to handle the variety of ways users // can open a link in a new tab // Middle mouse button click if (event.button === 1) { decorateLink(event); } }); }); } function decorateLink(event) { window._envGaTrackerNames = ACCOUNTS; var currentTarget = jQuery(event.target); var link = currentTarget.closest('a')[0]; var ourDomains = ["audiojungle.net","themeforest.net","videohive.net","graphicriver.net","3docean.net","codecanyon.net","photodune.net","elements.envato.com","build.envatohostedservices.com","author.envato.com","tutsplus.com","sites.envato.com","account.envato.com","forums.envato.com"]; var filteredDomains = ourDomains.filter(function(domain) { return domain !== document.location.hostname; }); for (var i = 0; i < ACCOUNTS.length; i++) { var t = ACCOUNTS[i]; if (link && link.href) { if (filteredDomains.includes(link.hostname) || currentSiteLinkOpensInNewWindow(link)) { ga(t+'.linker:decorate', link) } } } } function currentSiteLinkOpensInNewWindow(link) { return document.location.hostname === link.hostname && link.target === '_blank'; } function setupGoogleAnalytics() { (function () { var accountId = "UA-11834194-12"; window['ga-disable-'+accountId] = false; var options = {"name":"m","allowLinker":true}; if (Market.Helpers.GaLsUtils.localStorageAvailable()) { if (Market.Helpers.GaLsUtils.clientIdNotPresent()) { options.clientId = Market.Helpers.GaLsUtils.retrieveClientId(); } ga("create", accountId, options); ga(function() { var tracker = ga.getByName(options.name); Market.Helpers.GaLsUtils.storeClientId(tracker.get('clientId')); for (var i = 0; i < ACCOUNTS.length; i++) { var t = ACCOUNTS[i]; ga(t+'.set', 'dimension18', Market.Helpers.GaLsUtils.retrieveClientId()) } }) } else { ga("create", accountId, options); } window._envGaTrackerNames = ACCOUNTS; for (var i = 0; i < ACCOUNTS.length; i++) { var t = ACCOUNTS[i]; ga(t+'.require', ""); ga(t+'.require', 'ec'); ga(t+'.require', 'displayfeatures'); ga(t+'.set', 'dimension20', 'other') var itemPageIdMatch = window.location.pathname.match(/^\/item\/[a-z-]+\/(?:reviews\/)?(\d+)(?:\/comments|\/support)?$/); if (itemPageIdMatch) { // Fetch item ID from path var itemId = itemPageIdMatch[1]; ga(t+'.set', 'dimension23', itemId); } } loadLinkingForAllAccounts() }()); } function loadGoogleAnalytics() { (function () { var s=document.createElement('script'); s.type='text/javascript'; s.async=true; s.src='https://www.google-analytics.com/analytics.js'; var x=document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s,x); }()); } //]]> </script> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ trimGacUaCookies() trimGaSessionCookies() function trimGacUaCookies() { // Trim the list of gac cookies and only leave the most recent ones. This // prevents rejecting the request later on when the cookie size grows larger // than nginx buffers. let maxCookies = 15 var gacCookies = [] let cookies = document.cookie.split('; ') for (let i in cookies) { let [cookieName, cookieVal] = cookies[i].split('=', 2) if (cookieName.startsWith('_gac_UA')) { gacCookies.push([cookieName, cookieVal]) } } if (gacCookies.length <= maxCookies){return } gacCookies.sort((a, b) => { return (a[1] > b[1] ? -1 : 1) }) for (let i in gacCookies) { if (i < maxCookies) continue $.removeCookie(gacCookies[i][0], { path: '/', domain: '.' + window.location.host }) } } function trimGaSessionCookies() { // Trim the list of ga session cookies and only leave the most recent ones. This // prevents rejecting the request later on when the cookie size grows larger // than nginx buffers. let maxCookies = 15 var gaCookies = [] // safelist our GA properties for production and staging const KEEPLIST = ['_ga_ZKBVC1X78F', '_ga_9Z72VQCKY0'] let cookies = document.cookie.split('; ') for (let i in cookies) { let [cookieName, cookieVal] = cookies[i].split('=', 2) // explicitly ensure the cookie starts with `_ga_` so that we don't accidentally include // the `_ga` cookie if (cookieName.startsWith('_ga_')) { if (KEEPLIST.includes(cookieName)) { continue } gaCookies.push([cookieName, cookieVal]) } } if (gaCookies.length <= maxCookies){return } gaCookies.sort((a, b) => { return (a[1] > b[1] ? -1 : 1) }) for (let i in gaCookies) { if (i < maxCookies) continue $.removeCookie(gaCookies[i][0], { path: '/', domain: '.' + window.location.host }) } } //]]> </script> <script nonce="nYmvnOS3Bv/M08wpn3pkLA=="> //<![CDATA[ // Set Datadog custom attributes (function () { if (typeof window.datadog_attributes != 'object') window.datadog_attributes = {} window.datadog_attributes['pageType'] = 'other' })() //]]> </script> </body></html>