import React, { useEffect, useCallback } from 'react'; import { Grid, ErrorText } from 'indigo-react'; import cn from 'classnames'; import { useHosting } from 'store/hosting'; import BridgeForm from 'form/BridgeForm'; import { GenerateButton, ForwardButton } from './Buttons'; import 'style/hosted-ship.scss'; import useKeyfileGenerator from 'lib/useKeyfileGenerator'; export default function HostedShip({ // useHostedShip // additional from parent className, }) { const ship = useHosting(); const { syncStatus } = ship; console.log(ship); const { keyfile } = useKeyfileGenerator(); const createShip = useCallback(() => ship.create(keyfile), [ship, keyfile]); const renderStatus = () => { if (ship.missing || ship.booting) { return ( Boot Urbit OS ); } else if (ship.running || ship.connecting) { return ( Connect ); } else if (ship.connected) { return ( Disconnect ); } else if (ship.unknown || ship.querying) { return ( '} solid success disabled={ship.querying} loading={ship.querying} onClick={syncStatus}> Query ); } }; const renderEvents = (title, detail, events) => { return ( <> {title} ); }; return ( <> {() => ( <> {ship.error && ( {ship.error.message} )} {renderStatus()} {!ship.unknown && ( Ship Status )} )} {ship.connected && ( <> {renderEvents('Run', 'Terminal events', ship.runEvents)} {renderEvents( 'New', 'Pier creation and boot events', ship.newEvents )} {renderEvents( 'Sys', 'Hosting platform events', ship.sysEvents.map(e => e.object.message) )} )} ); }