2025-03-26 13:00:33 +00:00
|
|
|
import React, { useEffect, useState } from "react";
|
2025-03-26 05:48:23 +00:00
|
|
|
import RenameInput from "../../../ui/inputs/RenameInput";
|
|
|
|
import Vector3Input from "../customInput/Vector3Input";
|
2025-03-26 13:00:33 +00:00
|
|
|
import { useSelectedZoneStore } from "../../../../store/useZoneStore";
|
2025-03-27 06:58:17 +00:00
|
|
|
import { useEditPosition, usezonePosition, usezoneTarget } from "../../../../store/store";
|
2025-03-26 05:48:23 +00:00
|
|
|
|
2025-03-26 06:52:04 +00:00
|
|
|
const ZoneProperties: React.FC = () => {
|
2025-03-27 06:58:17 +00:00
|
|
|
const { Edit, setEdit } = useEditPosition();
|
2025-03-26 13:00:33 +00:00
|
|
|
const { selectedZone, setSelectedZone } = useSelectedZoneStore();
|
2025-03-27 06:58:17 +00:00
|
|
|
const { zonePosition, setZonePosition } = usezonePosition();
|
|
|
|
const { zoneTarget, setZoneTarget } = usezoneTarget();
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
setZonePosition(selectedZone.zoneViewPortPosition)
|
|
|
|
setZoneTarget(selectedZone.zoneViewPortTarget)
|
|
|
|
}, [selectedZone?.zoneViewPortPosition, selectedZone?.zoneViewPortTarget])
|
2025-03-26 06:52:04 +00:00
|
|
|
|
|
|
|
function handleSetView() {
|
2025-03-27 06:58:17 +00:00
|
|
|
console.log("setApi");
|
|
|
|
|
|
|
|
console.log('zoneTarget: ', zoneTarget);
|
|
|
|
console.log('zonePosition: ', zonePosition);
|
2025-03-26 06:52:04 +00:00
|
|
|
setEdit(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleEditView() {
|
2025-03-27 06:58:17 +00:00
|
|
|
setEdit(!Edit); // This will toggle the `Edit` state correctly
|
2025-03-26 06:52:04 +00:00
|
|
|
}
|
2025-03-26 13:00:33 +00:00
|
|
|
|
2025-03-27 06:58:17 +00:00
|
|
|
function handleZoneNameChange(newName: string) {
|
|
|
|
setSelectedZone((prev) => ({ ...prev, zoneName: newName }));
|
|
|
|
}
|
|
|
|
|
|
|
|
function handleVectorChange(key: "zoneViewPortTarget" | "zoneViewPortPosition", newValue: [number, number, number]) {
|
|
|
|
setSelectedZone((prev) => ({ ...prev, [key]: newValue }));
|
|
|
|
}
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
console.log("Updated selectedZone: ", selectedZone);
|
|
|
|
}, [selectedZone]);
|
2025-03-26 06:52:04 +00:00
|
|
|
|
2025-03-26 05:48:23 +00:00
|
|
|
return (
|
|
|
|
<div className="zone-properties-container">
|
|
|
|
<div className="header">
|
2025-03-27 06:58:17 +00:00
|
|
|
<RenameInput value={selectedZone.zoneName} onRename={handleZoneNameChange} />
|
2025-03-26 06:52:04 +00:00
|
|
|
<div className="button" onClick={handleEditView}>
|
|
|
|
{Edit ? "Cancel" : "Edit"}
|
|
|
|
</div>
|
2025-03-26 05:48:23 +00:00
|
|
|
</div>
|
2025-03-27 06:58:17 +00:00
|
|
|
<Vector3Input
|
|
|
|
onChange={(value) => handleVectorChange("zoneViewPortTarget", value)}
|
|
|
|
header="Viewport Target"
|
|
|
|
value={zoneTarget as [number, number, number]}
|
|
|
|
disabled={!Edit}
|
|
|
|
/>
|
|
|
|
<Vector3Input
|
|
|
|
onChange={(value) => handleVectorChange("zoneViewPortPosition", value)}
|
|
|
|
header="Viewport Position"
|
|
|
|
value={zonePosition as [number, number, number]}
|
|
|
|
disabled={!Edit}
|
|
|
|
/>
|
|
|
|
|
2025-03-26 06:52:04 +00:00
|
|
|
{Edit && (
|
|
|
|
<div className="button-save" onClick={handleSetView}>
|
|
|
|
Set View
|
|
|
|
</div>
|
|
|
|
)}
|
2025-03-26 05:48:23 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ZoneProperties;
|
2025-03-27 06:58:17 +00:00
|
|
|
|