-
Matthias Feyll authoredMatthias Feyll authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
device.viewmodel.ts 1.15 KiB
import { useAppDispatch, useAppSelector } from '@hooks'
import { useMemo, useState } from 'react'
import { fetchPluginsThunk } from '../routines/plugin.routine'
export const useDeviceViewModel = () => {
const [addModal, setAddModal] = useState<boolean>(false)
const { selected: selectedDevice } = useAppSelector((state) => state.device)
const dispatch = useAppDispatch()
const openAddModal = () => {
dispatch(fetchPluginsThunk())
setAddModal(true)
}
const closeModal = () => {
setAddModal(false)
}
const getYangModelJSON = (): JSON | null => {
if (!selectedDevice?.mne?.model) {
return null
}
const json = JSON.parse(selectedDevice.mne.model);
const key = Object.keys(json).at(1) as keyof typeof selectedDevice.mne.model
const innerJson = json[key]
if (!(innerJson instanceof Object)) {
return null
}
return innerJson
}
const jsonYang = useMemo<JSON | null>(getYangModelJSON, [selectedDevice])
return {
jsonYang,
selectedDevice,
openAddModal,
closeModal,
addModal
}
}