Skip to content

Commit

Permalink
+ switch object
Browse files Browse the repository at this point in the history
  • Loading branch information
Ratchet committed Apr 17, 2023
1 parent 70be0ed commit 986caf3
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 90 deletions.
80 changes: 0 additions & 80 deletions electron-app/event-handlers.js

This file was deleted.

8 changes: 5 additions & 3 deletions electron-app/events/ipc-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,19 @@ class IPCServer {
return pkg.toJSON();
}

async _onFetchExport({ index, name, type, path }) {
async _onFetchExport({ index, name, type, path, ext }) {
if (!assetLoader) throw new Error(`No asset loader!`);

let pkg;

if (path) pkg = assetLoader.getPackage(path);
else {
if (!name || !type)
if (!name || (!type && !ext))
throw new Error("To find package a path or name and type must be supplied");

pkg = assetLoader.getPackage(name, type);
pkg = ext
? assetLoader.packages.get(name).get(ext)
: assetLoader.getPackage(name, type);
}

await assetLoader.load(pkg);
Expand Down
14 changes: 10 additions & 4 deletions src/components/editor.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ function getObjectEditor({ history, filter }, { type, index, filename, value })
<Item>{name}</Item>
</Grid>
<Grid item xs={2}>
<Item>{getPropertyField(value)}</Item>
<Item>{getPropertyField(history, value)}</Item>
</Grid>
</Grid>
</FlexBox>
Expand Down Expand Up @@ -195,7 +195,7 @@ function getPackageEditor({ history, filter }, { filename, exports }) {
);
}

function getPropertyField({ type, names, value, enumName }) {
function getPropertyField(history, { type, names, value, enumName, package: pkg }) {
const props = {};

let Field;
Expand All @@ -212,6 +212,12 @@ function getPropertyField({ type, names, value, enumName }) {
props.enumName = enumName;
props.names = names;
break;
case "object":
Field = PropFields.ObjectProperty;
props.names = names instanceof Array ? names : [names];
props.history = history;
[props.pkgName, props.pkgExt] = pkg;
break;
default: Field = () => `'${type}' not implemented`;
}

Expand All @@ -226,7 +232,7 @@ function getPropertyField({ type, names, value, enumName }) {
value.map((v, index) => {
return (
<ListItem key={index}>
<Field {...props} value={v} />
<Field index={index} {...props} value={v} />
</ListItem>
);
})
Expand All @@ -237,5 +243,5 @@ function getPropertyField({ type, names, value, enumName }) {
);
}

return <Field {...props} value={value} />;
return <Field index={0} {...props} value={value} />;
}
7 changes: 5 additions & 2 deletions src/components/property-fields/name-property.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import React from "react";
import { TextField } from "@mui/material";

export function NameProperty({ value }) {
function NameProperty({ value }) {
return <TextField label="name" variant="standard" value={value} disabled={true} />
}
}

export default NameProperty;
export { NameProperty };
31 changes: 31 additions & 0 deletions src/components/property-fields/object-property.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React from "react";
import { Button, TextField } from "@mui/material";
import IPCClient from "../../../electron-app/events/ipc-client";

function ObjectProperty({ history: [activeHistory, setHistory], value, index, names, pkgName, pkgExt }) {
async function onClick() {
const object = await IPCClient.send("user-interaction", {
type: "fetch-export",
payload: {
ext: pkgExt,
name: pkgName,
index: value
}
});

setHistory([...activeHistory, {
type: "object",
name: object.name,
value: object
}]);
}

return (
<Button variant="standard" disabled={value === 0} onClick={onClick}>
{names[index] || "None"}
</Button>
);
}

export default ObjectProperty;
export { ObjectProperty };
3 changes: 2 additions & 1 deletion src/components/property-fields/properties.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ export { BooleanProperty } from "./boolean-property.jsx";
export { NameProperty } from "./name-property.jsx";
export { StringProperty } from "./string-property.jsx";
export { FloatProperty } from "./float-property.jsx";
export { EnumProperty } from "./enum-property.jsx";
export { EnumProperty } from "./enum-property.jsx";
export { ObjectProperty } from "./object-property.jsx";

0 comments on commit 986caf3

Please sign in to comment.