Move remote deployment to a vendored source bundle built on the target host via Docker so redeploys no longer require local cross-compilation or host Go installation. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package runtime
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
// OnFileDrop returns a slice of file path strings when a drop is finished.
|
|
func OnFileDrop(ctx context.Context, callback func(x, y int, paths []string)) {
|
|
if callback == nil {
|
|
LogError(ctx, "OnFileDrop called with a nil callback")
|
|
return
|
|
}
|
|
EventsOn(ctx, "wails:file-drop", func(optionalData ...interface{}) {
|
|
if len(optionalData) != 3 {
|
|
callback(0, 0, nil)
|
|
}
|
|
x, ok := optionalData[0].(int)
|
|
if !ok {
|
|
LogError(ctx, fmt.Sprintf("invalid x coordinate in drag and drop: %v", optionalData[0]))
|
|
}
|
|
y, ok := optionalData[1].(int)
|
|
if !ok {
|
|
LogError(ctx, fmt.Sprintf("invalid y coordinate in drag and drop: %v", optionalData[1]))
|
|
}
|
|
paths, ok := optionalData[2].([]string)
|
|
if !ok {
|
|
LogError(ctx, fmt.Sprintf("invalid path data in drag and drop: %v", optionalData[2]))
|
|
}
|
|
callback(x, y, paths)
|
|
})
|
|
}
|
|
|
|
// OnFileDropOff removes the drag and drop listeners and handlers.
|
|
func OnFileDropOff(ctx context.Context) {
|
|
EventsOff(ctx, "wails:file-drop")
|
|
}
|