on main help sign in
fix(ui): filepicker: defer image preview until after transmission
9f5284fAyman Bagabas
internal/ui/dialog/filepicker.go+9−6
@@ -185,14 +185,17 @@ func (f *FilePicker) HandleMsg(msg tea.Msg) Action {
185
185
186 f.previewingImage = allowed
186 f.previewingImage = allowed
187 if allowed && !fimage.HasTransmitted(selFile, f.imgPrevWidth, f.imgPrevHeight) {
187 if allowed && !fimage.HasTransmitted(selFile, f.imgPrevWidth, f.imgPrevHeight) {
188+ f.previewingImage = false
188 img, err := loadImage(selFile)
189 img, err := loadImage(selFile)
189− if err != nil {
190+ if err == nil {
191+ cmds = append(cmds, tea.Sequence(
192+ f.imgEnc.Transmit(selFile, img, f.cellSize, f.imgPrevWidth, f.imgPrevHeight),
193+ func() tea.Msg {
190− f.previewingImage = false
194+ f.previewingImage = true
195+ return nil
196+ },
197+ ))
191 }
198 }
192−
193− cmds = append(cmds, f.imgEnc.Transmit(
194− selFile, img, f.cellSize, f.imgPrevWidth, f.imgPrevHeight))
195− f.previewingImage = true
196 }
199 }
197 }
200 }
198 if cmd != nil {
201 if cmd != nil {