wails
wails copied to clipboard
Check valid Windows paths for ``runtime.OpenDirectoryDialog``
Discussed in https://github.com/wailsapp/wails/discussions/1371
Originally posted by KiddoV May 3, 2022 What am I doing wrong here? In GO:
func (a *App) OpenDirectoryDialog(dialogOptions interface{}) (string, error) {
directoryPath, err := runtime.OpenDirectoryDialog(a.ctx, runtime.OpenDialogOptions{
DefaultDirectory: fmt.Sprintf("%v", dialogOptions.(map[string]interface{})["defaultDirectory"]),
Title: fmt.Sprintf("%v", dialogOptions.(map[string]interface{})["title"]),
})
if err != nil {
return "", fmt.Errorf("failed opening dialog - %s", err.Error())
}
return directoryPath, nil
}
In JS:
window.go.main.App.OpenDirectoryDialog({
defaultDirectory: "C:/",
title: "Please select a folder to save Top and Bot CAD files..."
}).then(path => {
//returned path
}).catch(err => {
//Got ERR
});
I go PANIC when calling window.go.main.App.OpenDirectoryDialog in JS!!
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x10d9c58]
goroutine 38 [running]:
github.com/leaanthony/go-common-file-dialog/cfd.(*iFileDialogVtbl).setFolder(0x7fffb9490b30, 0x1f149581900, {0xc0002a05e0, 0x10a8801})
C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/vtblCommonFunc.go:137 +0x78
github.com/leaanthony/go-common-file-dialog/cfd.(*iFileOpenDialog).SetFolder(0x1f149581900, {0xc0002a05e0, 0x5})
C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/iFileOpenDialog.go:100 +0x2f
github.com/leaanthony/go-common-file-dialog/cfd.(*DialogConfig).apply(0xc0002bf3e8, {0x2191708, 0x1f149581900})
C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/DialogConfig.go:70 +0xbe
github.com/leaanthony/go-common-file-dialog/cfd.NewSelectFolderDialog({{0xc00001e600, 0x37}, {0x12c8fe3, 0xa}, {0x0, 0x0}, {0xc0002a05e0, 0x3}, {0x0, 0x0, ...}, ...})
C:/Users/vho/go/pkg/mod/github.com/leaanthony/[email protected]/cfd/CommonFileDialog_windows.go:54 +0x65
github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).OpenDirectoryDialog(0xc000068000, {{0xc0002a05e0, 0x3}, {0x0, 0x0}, {0xc00001e600, 0x37}, {0x0, 0x0, 0x0}, ...})
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/dialog.go:20 +0x11f
github.com/wailsapp/wails/v2/pkg/runtime.OpenDirectoryDialog({0x2188920, 0xc00002e9c0}, {{0xc0002a05e0, 0x3}, {0x0, 0x0}, {0xc00001e600, 0x37}, {0x0, 0x0, ...}, ...})
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/pkg/runtime/dialog.go:39 +0x98
main.(*App).OpenDirectoryDialog(0xc00008dd40, {0x1243520, 0xc000177a70})
C:/MultiTech-Projects/GO Source Code Files/Web-Applications/Wails/utility-hub/app.go:158 +0x15e
reflect.Value.call({0x1283c40, 0xc00008dd40, 0x1f1495e0598}, {0x12c31cf, 0x4}, {0xc000004468, 0x1, 0x1235dc0})
C:/Program Files/Go/src/reflect/value.go:556 +0x845
reflect.Value.Call({0x1283c40, 0xc00008dd40, 0xdc297a}, {0xc000004468, 0x1, 0x1})
C:/Program Files/Go/src/reflect/value.go:339 +0xc5
github.com/wailsapp/wails/v2/internal/binding.(*BoundMethod).Call(0xc0000e2ee0, {0xc000050710, 0x1, 0x120ffc0})
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/binding/boundMethod.go:73 +0x178
github.com/wailsapp/wails/v2/internal/frontend/dispatcher.(*Dispatcher).processCallMessage(0xc00005e080, {0xc0002f6340, 0xc5},
{0x2196ee8, 0xc000068000})
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/dispatcher/calls.go:45 +0x189
github.com/wailsapp/wails/v2/internal/frontend/dispatcher.(*Dispatcher).ProcessMessage(0x0, {0xc0002f6340, 0x0}, {0x2196ee8, 0xc000068000})
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/dispatcher/dispatcher.go:39 +0x5egithub.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).processMessage.func1()
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/frontend.go:494 +0x3e
created by github.com/wailsapp/wails/v2/internal/frontend/desktop/windows.(*Frontend).processMessage
C:/Users/vho/go/pkg/mod/github.com/wailsapp/wails/[email protected]/internal/frontend/desktop/windows/frontend.go:493 +0x225
Please help!