@@ -127,6 +127,9 @@ func (f *filepickerCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
127127 f .cursor = 0
128128 f .getCurrentFileBelowCursor ()
129129 case tea.KeyMsg :
130+ if f .cwd .Focused () {
131+ f .cwd , cmd = f .cwd .Update (msg )
132+ }
130133 switch {
131134 case key .Matches (msg , filePickerKeyMap .InsertCWD ):
132135 f .cwd .Focus ()
@@ -165,7 +168,6 @@ func (f *filepickerCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
165168 isPathDir = f .dirs [f .cursor ].IsDir ()
166169 }
167170 if isPathDir {
168- path := filepath .Join (f .cwdDetails .directory , "/" , f .dirs [f .cursor ].Name ())
169171 newWorkingDir := DirNode {parent : f .cwdDetails , directory : path }
170172 f .cwdDetails .child = & newWorkingDir
171173 f .cwdDetails = f .cwdDetails .child
@@ -216,9 +218,6 @@ func (f *filepickerCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
216218 f .getCurrentFileBelowCursor ()
217219 }
218220 }
219- if f .cwd .Focused () {
220- f .cwd , cmd = f .cwd .Update (msg )
221- }
222221 return f , cmd
223222}
224223
@@ -228,37 +227,35 @@ func (f *filepickerCmp) addAttachmentToMessage() (tea.Model, tea.Cmd) {
228227 logging .ErrorPersist (fmt .Sprintf ("Model %s doesn't support attachments" , modeInfo .Name ))
229228 return f , nil
230229 }
231- if isExtSupported (f .dirs [f .cursor ].Name ()) {
232- f .selectedFile = f .dirs [f .cursor ].Name ()
233- selectedFilePath := filepath .Join (f .cwdDetails .directory , "/" , f .selectedFile )
234- isFileLarge , err := image .ValidateFileSize (selectedFilePath , maxAttachmentSize )
235- if err != nil {
236- logging .ErrorPersist ("unable to read the image" )
237- return f , nil
238- }
239- if isFileLarge {
240- logging .ErrorPersist ("file too large, max 5MB" )
241- return f , nil
242- }
243230
244- content , err := os . ReadFile ( selectedFilePath )
245- if err != nil {
246- logging .ErrorPersist ("Unable read selected file" )
247- return f , nil
248- }
231+ selectedFilePath := f . selectedFile
232+ if ! isExtSupported ( selectedFilePath ) {
233+ logging .ErrorPersist ("Unsupported file" )
234+ return f , nil
235+ }
249236
250- mimeBufferSize := min (512 , len (content ))
251- mimeType := http .DetectContentType (content [:mimeBufferSize ])
252- fileName := f .selectedFile
253- attachment := message.Attachment {FilePath : selectedFilePath , FileName : fileName , MimeType : mimeType , Content : content }
254- f .selectedFile = ""
255- return f , util .CmdHandler (AttachmentAddedMsg {attachment })
237+ isFileLarge , err := image .ValidateFileSize (selectedFilePath , maxAttachmentSize )
238+ if err != nil {
239+ logging .ErrorPersist ("unable to read the image" )
240+ return f , nil
256241 }
257- if ! isExtSupported ( f . selectedFile ) {
258- logging .ErrorPersist ("Unsupported file" )
242+ if isFileLarge {
243+ logging .ErrorPersist ("file too large, max 5MB " )
259244 return f , nil
260245 }
261- return f , nil
246+
247+ content , err := os .ReadFile (selectedFilePath )
248+ if err != nil {
249+ logging .ErrorPersist ("Unable read selected file" )
250+ return f , nil
251+ }
252+
253+ mimeBufferSize := min (512 , len (content ))
254+ mimeType := http .DetectContentType (content [:mimeBufferSize ])
255+ fileName := filepath .Base (selectedFilePath )
256+ attachment := message.Attachment {FilePath : selectedFilePath , FileName : fileName , MimeType : mimeType , Content : content }
257+ f .selectedFile = ""
258+ return f , util .CmdHandler (AttachmentAddedMsg {attachment })
262259}
263260
264261func (f * filepickerCmp ) View () string {
0 commit comments