import { Row, View, Text, Divider, Spacer } from 'expo-dev-client-components'; import React from 'react'; import { Image, StyleSheet } from 'react-native'; import DevIndicator from '../components/DevIndicator'; import FriendlyUrls from '../legacy/FriendlyUrls'; type Props = { task: { [key: string]: any }; }; export function DevMenuTaskInfo({ task }: Props) { const taskUrl = task.manifestUrl ? FriendlyUrls.toFriendlyString(task.manifestUrl) : ''; const manifest = task.manifestString && JSON.parse(task.manifestString); const iconUrl = manifest && (manifest.iconUrl ?? manifest.extra.expoClient.iconUrl); const taskName = manifest && (manifest.name ?? manifest.extra.expoClient.name); const sdkVersion = manifest && (manifest.sdkVersion ?? manifest.extra.expoClient.sdkVersion); const runtimeVersion = manifest && manifest.runtimeVersion; const devServerName = manifest && manifest.extra?.expoGo?.developer ? manifest.extra.expoGo.developer.tool : null; return ( {!manifest?.metadata?.branchName && iconUrl ? ( // EAS Updates don't have icons ) : null} {taskName ? taskName : 'Untitled Experience'} {sdkVersion && ( Runtime version:{' '} {runtimeVersion} )} {devServerName ? `Connected to ${devServerName}` : `Running from URL`} {devServerName ? ( ) : null} {taskUrl} ); } const styles = StyleSheet.create({ taskIcon: { width: 40, height: 40, marginRight: 8, borderRadius: 8, alignSelf: 'center', backgroundColor: 'transparent', }, taskDevServerIndicator: { marginRight: 8, }, });