Skip to content

Commit

Permalink
Merge branch 'main' into update-docs-version-selector
Browse files Browse the repository at this point in the history
  • Loading branch information
CodyCBakerPhD authored May 17, 2024
2 parents 2b2468d + 22cfaaa commit 7911b2d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
6 changes: 6 additions & 0 deletions schemas/source-data.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export default function preprocessSourceDataSchema (schema) {

const info = interfaces[key] ?? {}

const files = schema.properties.file_paths ?? schema.properties.file_path
const singleLocationInfo = schema.properties.file_path ?? schema.properties.folder_path

if (schema.properties.file_paths) {
Expand All @@ -29,6 +30,11 @@ export default function preprocessSourceDataSchema (schema) {

}

if (files) {
const base = singleLocationInfo ? files : files.items
if (!base.accept && info.suffixes) base.accept = info.suffixes
}

// Do not show steps
if (schema.properties.gain) schema.properties.gain.step = null

Expand Down
20 changes: 17 additions & 3 deletions src/renderer/src/stories/FileSystemSelector.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ export class FilesystemSelector extends LitElement {
if (props.onSelect) this.onSelect = props.onSelect;
if (props.onChange) this.onChange = props.onChange;
if (props.onThrow) this.onThrow = props.onThrow;

this.accept = props.accept;
this.multiple = props.multiple;
this.type = props.type ?? "file";
this.value = props.value ?? "";
Expand All @@ -125,6 +127,17 @@ export class FilesystemSelector extends LitElement {

#useElectronDialog = async (type) => {
const options = { ...this.dialogOptions };

if (!options.filters && this.accept) {
options.filters = [
{
name: "Suggested Files",
extensions: this.accept.map((ext) => (ext[0] === "." ? ext.slice(1) : ext)),
},
{ name: "All Files", extensions: ["*"] },
];
}

options.properties = [
type === "file" ? "openFile" : "openDirectory",
"noResolveAliases",
Expand All @@ -142,7 +155,8 @@ export class FilesystemSelector extends LitElement {
return result;
};

#checkType = (value) => {
#check = (value) => {
// Check type
const isLikelyFile = fs ? fs.statSync(value).isFile() : value.split(".").length;
if ((this.type === "directory" && isLikelyFile) || (this.type === "file" && !isLikelyFile))
this.#onThrow("Incorrect filesystem object", `Please provide a <b>${this.type}</b> instead.`);
Expand All @@ -152,8 +166,8 @@ export class FilesystemSelector extends LitElement {
const resolvedType = type ?? this.type;

if (pathOrPaths) {
if (Array.isArray(pathOrPaths)) pathOrPaths.forEach(this.#checkType);
else if (!type) this.#checkType(pathOrPaths);
if (Array.isArray(pathOrPaths)) pathOrPaths.forEach(this.#check);
else if (!type) this.#check(pathOrPaths);
}

let resolvedValue = pathOrPaths;
Expand Down
1 change: 1 addition & 0 deletions src/renderer/src/stories/JSONSchemaInput.js
Original file line number Diff line number Diff line change
Expand Up @@ -893,6 +893,7 @@ export class JSONSchemaInput extends LitElement {
const filesystemSelectorElement = new FilesystemSelector({
type: format,
value: this.value,
accept: schema.accept,
onSelect: (paths = []) => {
const value = paths.length ? paths : undefined;
this.#updateData(fullPath, value);
Expand Down

0 comments on commit 7911b2d

Please sign in to comment.