|
1 | | -import type { FC } from 'react'; |
| 1 | +import { type FC } from 'react'; |
| 2 | +import { Button } from '@oasisprotocol/ui-library/src/components/ui/button'; |
| 3 | +import { |
| 4 | + Tabs, |
| 5 | + TabsContent, |
| 6 | + TabsList, |
| 7 | + TabsTrigger, |
| 8 | +} from '@oasisprotocol/ui-library/src/components/ui/tabs'; |
| 9 | +import { AppStatusIcon } from '../../../components/AppStatusIcon'; |
| 10 | +import { YamlCode } from '../../../components/CodeDisplay'; |
| 11 | +import { AppMetadata } from './AppMetadata'; |
2 | 12 |
|
3 | 13 | export const AppDetails: FC = () => { |
4 | | - return <>AppDetails</>; |
| 14 | + return ( |
| 15 | + <> |
| 16 | + <> |
| 17 | + <div> |
| 18 | + <Tabs defaultValue="details"> |
| 19 | + <div className="flex flex-col md:flex-row md:items-center justify-between gap-4 border-b py-5 mb-5"> |
| 20 | + <div className="flex items-center gap-2 mb-"> |
| 21 | + <h1 className="text-2xl font-bold">OPF-1</h1> |
| 22 | + <AppStatusIcon hasActiveInstances removed={false} /> |
| 23 | + </div> |
| 24 | + <div className="flex flex-wrap gap-3"> |
| 25 | + <Button |
| 26 | + disabled |
| 27 | + variant="destructive" |
| 28 | + className="w-full md:w-auto md:ml-8" |
| 29 | + > |
| 30 | + Discard |
| 31 | + </Button> |
| 32 | + <Button disabled className="w-full md:w-auto md:mr-8"> |
| 33 | + Apply |
| 34 | + </Button> |
| 35 | + <TabsList className="w-full md:w-auto"> |
| 36 | + <TabsTrigger value="details">Details</TabsTrigger> |
| 37 | + <TabsTrigger value="secrets">Secrets</TabsTrigger> |
| 38 | + <TabsTrigger value="compose">Compose</TabsTrigger> |
| 39 | + </TabsList> |
| 40 | + </div> |
| 41 | + </div> |
| 42 | + <TabsContent value="details"> |
| 43 | + <AppMetadata /> |
| 44 | + </TabsContent> |
| 45 | + <TabsContent value="secrets">secrets</TabsContent> |
| 46 | + <TabsContent value="compose"> |
| 47 | + <YamlCode |
| 48 | + data={` |
| 49 | +services: |
| 50 | + ollama: |
| 51 | + image: "docker.io/ollama/ollama" |
| 52 | + ports: |
| 53 | + - "11434:11434" |
| 54 | + volumes: |
| 55 | + - ~/ollama-storage:/root/.ollama |
| 56 | + entrypoint: ["/usr/bin/bash", "-c", "/bin/ollama serve & sleep 5; ollama pull deepseek-r1:1.5b; wait"] |
| 57 | +
|
| 58 | + sapphire-localnet: |
| 59 | + image: "ghcr.io/oasisprotocol/sapphire-localnet" |
| 60 | + platform: "linux/x86_64" |
| 61 | + ports: |
| 62 | + - "8544-8548:8544-8548" |
| 63 | + healthcheck: |
| 64 | + test: ["CMD", "test", "-f", "/CONTAINER_READY"] |
| 65 | + interval: 30s |
| 66 | + timeout: 10s |
| 67 | + retries: 20 |
| 68 | +
|
| 69 | + contracts: |
| 70 | + image: "ghcr.io/foundry-rs/foundry:latest" |
| 71 | + volumes: |
| 72 | + - ./contracts:/contracts |
| 73 | + entrypoint: /bin/sh -c 'cd contracts && forge create --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --rpc-url http://sapphire-localnet:8545 --broadcast ChatBot --constructor-args localhost 00d795c033fb4b94873d81b6327f5371768ffc6fcf 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' |
| 74 | + depends_on: |
| 75 | + sapphire-localnet: |
| 76 | + condition: service_healthy |
| 77 | +
|
| 78 | + oracle: |
| 79 | + environment: |
| 80 | + CONTRACT_ADDRESS: 0x5FbDB2315678afecb367f032d93F642f64180aa3 |
| 81 | + build: |
| 82 | + dockerfile: Dockerfile.oracle |
| 83 | + # entrypoint: /bin/sh -c 'python main.py --network http://sapphire-localnet:8545 --ollama-address http://ollama:11434 --secret 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 $$CONTRACT_ADDRESS' |
| 84 | + entrypoint: /bin/sh -c 'sleep 100; python main.py --network http://sapphire-localnet:8545 --ollama-address http://ollama:11434 --secret 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 0x5FbDB2315678afecb367f032d93F642f64180aa3' |
| 85 | + restart: on-failure |
| 86 | + depends_on: |
| 87 | + contracts: |
| 88 | + condition: service_completed_successfully |
| 89 | +
|
| 90 | + frontend: |
| 91 | + build: |
| 92 | + dockerfile: Dockerfile.frontend |
| 93 | + ports: |
| 94 | + - "5173:5173" |
| 95 | + depends_on: |
| 96 | + contracts: |
| 97 | + condition: service_completed_successfully |
| 98 | + |
| 99 | + `} |
| 100 | + /> |
| 101 | + </TabsContent> |
| 102 | + </Tabs> |
| 103 | + </div> |
| 104 | + </> |
| 105 | + </> |
| 106 | + ); |
5 | 107 | }; |
0 commit comments