'use client'; import { Button } from '@/components/ui/button'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import { Plus, Link as LinkIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; import { Progress } from '@/components/ui/progress'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { cn } from '@/lib/utils'; import Link from 'next/link'; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { getUserRepository, GithubRepository } from '@/actions/github/repository'; import { signOut, useSession } from 'next-auth/react'; export const ServiceProviderList = [ { name: 'GitHub', value: 'github', image: 'https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png', permission: 'https://github.com/apps/stalin-deploy/installations/new', }, { name: 'Registry', value: 'registry', image: '', }, { name: 'Github Registry', value: 'github-registry', image: 'https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png', }, ]; export type NewApplication = { serviceProvider: string; git: { repositoryId: number; repositoryName: string; }; env: { [key: string]: string; }; }; export default function CreateApplicationForm() { const [steps, setSteps] = useState(1); const [serviceProvider, setServiceProvider] = useState('github'); const [repositories, setRepositories] = useState([]); const [newApplication, setNewApplication] = useState({ serviceProvider: '', git: { repositoryId: 0, repositoryName: '', }, env: {}, }); const { data: session } = useSession(); useEffect(() => { async function fetchRepositories() { if (serviceProvider == 'github') { const repos = await getUserRepository(session?.user.id as string, session?.user.username as string); setRepositories(repos); } } fetchRepositories(); }, [serviceProvider, session]); return ( New Application Deploy a new application from source

Step: {(steps == 1 && 'Select Provider') || (steps == 2 && 'Resources') || (steps == 3 && 'Environment Variables') || (steps == 4 && 'Information') || (steps == 5 && 'Review')}

{steps} / 5

{steps == 1 && (
{ServiceProviderList.map((provider) => (
))}
{serviceProvider == 'github' && ( )}
{(serviceProvider == 'github' || serviceProvider == 'github-registry') && (

Not seeing the repositories you expected here? s.value == serviceProvider)?.permission || ''}>Edit Your GitHub Permissions

)}
)}
); }