Skip to content

Commit

Permalink
fix: 🐛 Corrige bug de exibição do modelo e canal do projeto em edição
Browse files Browse the repository at this point in the history
  • Loading branch information
victorassiso committed Nov 22, 2024
1 parent e238475 commit 1f5e9cc
Showing 1 changed file with 52 additions and 43 deletions.
95 changes: 52 additions & 43 deletions src/app/(app)/vision-ai/project/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ import {
type ProjectForm,
projectFormSchema,
} from '../../components/schemas/project-schema'
import { formatCurrentDateTime } from './actions'

export default function ProjectDetails() {
const {
Expand Down Expand Up @@ -98,6 +97,9 @@ export default function ProjectDetails() {
resolver: zodResolver(projectFormSchema),
})

console.log('model', watch('model'))
console.log('notificationChannelId', watch('notificationChannelId'))

useEffect(() => {
async function handleRedirect() {
await setToastDataCookie({
Expand All @@ -108,54 +110,51 @@ export default function ProjectDetails() {
await redirect('/vision-ai')
}

async function initializeData() {
if (project && channels && cameras) {
const channel = channels.find(
(channel) => channel.id === project.discord_id,
)
if (project && channels && cameras) {
console.log('project', project)
const channel = channels.find(
(channel) => channel.id === project.discord_id,
)

if (!channel) {
toast.error(
'Canal de notificação não encontrado. Por favor, selecione um canal válido ou crie um novo.',
)
} else {
setValue('notificationChannelId', channel.id)
}

setValue('name', project.name)
setValue('model', project.model)
setValue('enabled', project.enable)
setValue('yolo_crowd_count', project.model_config?.yolo_crowd_count)
if (project.model_config?.yolo_default_precision) {
setValue(
'yolo_default_precision',
project.model_config.yolo_default_precision,
)
}

if (project.time_start) {
setValue('startTime', await formatCurrentDateTime(project.time_start))
}
if (project.time_end) {
setValue('endTime', await formatCurrentDateTime(project.time_end))
}

setSelectedCameras(
cameras.filter((camera) => project.cameras_id.includes(camera.id)),
if (!channel) {
toast.error(
'Canal de notificação não encontrado. Por favor, selecione um canal válido ou crie um novo.',
)
} else {
setValue('notificationChannelId', channel.id)
}

setIsInitializingData(false)
setValue('name', project.name)
setValue('model', project.model)
setValue('enabled', project.enable)
setValue('yolo_crowd_count', project.model_config?.yolo_crowd_count)
if (project.model_config?.yolo_default_precision) {
setValue(
'yolo_default_precision',
project.model_config.yolo_default_precision,
)
}

if (
errorProject &&
errorProject.message === 'Request failed with status code 404'
) {
await handleRedirect()
if (project.time_start) {
setValue('startTime', formatCurrentDateTime(project.time_start))
}
if (project.time_end) {
setValue('endTime', formatCurrentDateTime(project.time_end))
}

setSelectedCameras(
cameras.filter((camera) => project.cameras_id.includes(camera.id)),
)

setIsInitializingData(false)
}

initializeData()
if (
errorProject &&
errorProject.message === 'Request failed with status code 404'
) {
handleRedirect()
}
}, [
cameras,
id,
Expand All @@ -166,6 +165,16 @@ export default function ProjectDetails() {
errorProject,
])

function formatCurrentDateTime(time: string) {
const today = new Date()

const utcTodayWithTimeStr = `${today.toISOString().split('T')[0]}T${time}`

const newDate = new Date(utcTodayWithTimeStr)

return newDate
}

async function onSubmit(data: ProjectForm) {
const channel = channels?.find(
(channel) => channel.id === data.notificationChannelId,
Expand Down Expand Up @@ -288,7 +297,7 @@ export default function ProjectDetails() {
render={({ field }) => (
<Select
onValueChange={field.onChange}
defaultValue={field.value}
value={field.value}
disabled={isInitializingData || isPendingUpdate}
>
<SelectTrigger id="model" className="w-full">
Expand Down Expand Up @@ -351,7 +360,7 @@ export default function ProjectDetails() {
render={({ field }) => (
<Select
onValueChange={field.onChange}
defaultValue={field.value}
value={field.value}
disabled={isInitializingData || isPendingUpdate}
>
<SelectTrigger id="notificationChannelId" className="w-full">
Expand Down

0 comments on commit 1f5e9cc

Please sign in to comment.