Skip to content

Commit

Permalink
fix easy to fix eslint
Browse files Browse the repository at this point in the history
  • Loading branch information
danielleroux committed Oct 2, 2024
1 parent 7790b3f commit a65e0d8
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 102 deletions.
3 changes: 2 additions & 1 deletion apps/react-starter/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ function App() {

useEffect(() => {
fetch();
}, []);
}, [fetch]);

const supportedLanguages: Language[] = [
{ code: "en", name: "English" },
{ code: "de", name: "German" },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ const CustomQuickActionsComp = (props: CustomQuickActionsCompProps) => {
content: <DeleteModal />,
});

instance.onClose.on((_) => {
instance.onClose.on(() => {
deleteDevice(props.data);
showSuccessToast("Successfully deleted the device!");
});
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/*
* SPDX-FileCopyrightText: 2024 Siemens AG
*
* SPDX-License-Identifier: MIT
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import {
IxButton,
IxModalContent,
IxModalFooter,
IxModalHeader,
IxSelect,
IxSelectItem,
Modal,
ModalRef,
} from "@siemens/ix-react";
import { useRef, useEffect } from "react";
import styles from "./styles.module.css";
import FormField from "./form-field";
import { useForm } from "react-hook-form";
import { useDataStore } from "../../../store/device-store";
import { MockData } from "../../../../types";

export default function AddDeviceModal() {
const { addDevice } = useDataStore();
const modalRef = useRef<ModalRef>(null);
const formRef = useRef<HTMLFormElement>(null);

const close = () => {
modalRef.current?.close("close payload!");
};
const dismiss = () => {
modalRef.current?.dismiss("dismiss payload");
};

const { register, setValue, handleSubmit } = useForm<MockData>({
defaultValues: {
deviceName: "",
vendor: "",
description: "",
status: "Online",
articleNumber: "",
macAddress: "",
ipAddress: "",
firmwareVersion: "",
serialNumber: "",
},
});

useEffect(() => {
register("status");
}, [register]);

const onSubmit = (data: MockData) => {
addDevice(data);
close();
};

return (
<Modal ref={modalRef}>
<IxModalHeader onCloseClick={() => dismiss()}>Add device</IxModalHeader>

<IxModalContent>
<form id="modalForm" ref={formRef} onSubmit={handleSubmit(onSubmit)} noValidate>
<div className={styles.FormGrid}>
<FormField id="deviceName" label="Device Name" register={register} />
<FormField id="vendor" label="Vendor" register={register} />
<div className={styles.ItemFullWidth}>
<FormField id="description" label="Description" register={register} />
</div>
<div className="d-flex flex-column">
<label htmlFor="status">Status</label>
<IxSelect
id="status"
value="online"
onValueChange={(e) => setValue("status", e.detail as MockData["status"])}
>
<IxSelectItem label="Online" value="online" />
<IxSelectItem label="Offline" value="offline" />
</IxSelect>
</div>
<FormField id="articleNumber" label="Article Number" register={register} />
<FormField id="macAddress" label="MAC Address" register={register} />
<FormField id="ipAddress" label="IP Address" register={register} />
<FormField id="firmwareVersion" label="Firmware Version" register={register} />
<FormField id="serialNumber" label="Serial Number" register={register} />
</div>
</form>
</IxModalContent>

<IxModalFooter>
<IxButton aria-label="cancel" outline onClick={() => dismiss()}>
Cancel
</IxButton>
<IxButton
aria-label="create device"
type="button"
onClick={() => formRef.current?.requestSubmit()}
>
OK
</IxButton>
</IxModalFooter>
</Modal>
);
}

101 changes: 2 additions & 99 deletions apps/react-starter/src/pages/devices/components/modal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,106 +7,9 @@
* LICENSE file in the root directory of this source tree.
*/

import {
IxButton,
IxModalContent,
IxModalFooter,
IxModalHeader,
IxSelect,
IxSelectItem,
Modal,
ModalRef,
showModal,
} from "@siemens/ix-react";
import { useRef, useEffect } from "react";
import styles from "./styles.module.css";
import FormField from "./form-field";
import { useForm } from "react-hook-form";
import { useDataStore } from "../../../store/device-store";
import { MockData } from "../../../../types";
import { showModal } from "@siemens/ix-react";

function AddDeviceModal() {
const { addDevice } = useDataStore();
const modalRef = useRef<ModalRef>(null);
const formRef = useRef<HTMLFormElement>(null);

const close = () => {
modalRef.current?.close("close payload!");
};
const dismiss = () => {
modalRef.current?.dismiss("dismiss payload");
};

const { register, setValue, handleSubmit } = useForm<MockData>({
defaultValues: {
deviceName: "",
vendor: "",
description: "",
status: "Online",
articleNumber: "",
macAddress: "",
ipAddress: "",
firmwareVersion: "",
serialNumber: "",
},
});

useEffect(() => {
register("status");
}, [register]);

const onSubmit = (data: MockData) => {
addDevice(data);
close();
};

return (
<Modal ref={modalRef}>
<IxModalHeader onCloseClick={() => dismiss()}>Add device</IxModalHeader>

<IxModalContent>
<form id="modalForm" ref={formRef} onSubmit={handleSubmit(onSubmit)} noValidate>
<div className={styles.FormGrid}>
<FormField id="deviceName" label="Device Name" register={register} />
<FormField id="vendor" label="Vendor" register={register} />
<div className={styles.ItemFullWidth}>
<FormField id="description" label="Description" register={register} />
</div>
<div className="d-flex flex-column">
<label htmlFor="status">Status</label>
<IxSelect
id="status"
value="online"
onValueChange={(e) => setValue("status", e.detail as MockData["status"])}
>
<IxSelectItem label="Online" value="online" />
<IxSelectItem label="Offline" value="offline" />
</IxSelect>
</div>
<FormField id="articleNumber" label="Article Number" register={register} />
<FormField id="macAddress" label="MAC Address" register={register} />
<FormField id="ipAddress" label="IP Address" register={register} />
<FormField id="firmwareVersion" label="Firmware Version" register={register} />
<FormField id="serialNumber" label="Serial Number" register={register} />
</div>
</form>
</IxModalContent>

<IxModalFooter>
<IxButton aria-label="cancel" outline onClick={() => dismiss()}>
Cancel
</IxButton>
<IxButton
aria-label="create device"
type="button"
onClick={() => formRef.current?.requestSubmit()}
>
OK
</IxButton>
</IxModalFooter>
</Modal>
);
}
import AddDeviceModal from "./add-device-modal";

export default async function show() {
await showModal({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import type { MockData } from "../../../../types";
import { useDataStore } from "../../../store/device-store.ts";

export type QuickActionsProps = {
show: () => {};
show: () => void;
};

function QuickActions({ show }: QuickActionsProps) {
Expand Down

0 comments on commit a65e0d8

Please sign in to comment.