fix(file_selector): make sure to flatten selected_paths if picker yields a single string (#1153)
This commit is contained in:
		
							parent
							
								
									5d1bc6e8b4
								
							
						
					
					
						commit
						692c168e5b
					
				@ -252,6 +252,8 @@ M._defaults = {
 | 
			
		||||
    provider = "native",
 | 
			
		||||
    -- Options override for custom providers
 | 
			
		||||
    provider_opts = {},
 | 
			
		||||
    --- @type fun(selected_paths: string[] | string | nil): nil
 | 
			
		||||
    handler = nil,
 | 
			
		||||
  },
 | 
			
		||||
  suggestion = {
 | 
			
		||||
    debounce = 600,
 | 
			
		||||
 | 
			
		||||
@ -30,13 +30,16 @@ function FileSelector:process_directory(absolute_path, project_root)
 | 
			
		||||
  self:emit("update")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
---@param selected_paths string[] | nil
 | 
			
		||||
---@param selected_paths string | string[] | nil
 | 
			
		||||
---@return nil
 | 
			
		||||
function FileSelector:handle_path_selection(selected_paths)
 | 
			
		||||
  if not selected_paths then return end
 | 
			
		||||
  local project_root = Utils.get_project_root()
 | 
			
		||||
 | 
			
		||||
  for _, selected_path in ipairs(selected_paths) do
 | 
			
		||||
  -- Convert single string to array if needed
 | 
			
		||||
  local paths = type(selected_paths) == "string" and { selected_paths } or selected_paths
 | 
			
		||||
 | 
			
		||||
  for _, selected_path in ipairs(paths) do
 | 
			
		||||
    local absolute_path = Path:new(project_root):joinpath(selected_path):absolute()
 | 
			
		||||
 | 
			
		||||
    local stat = vim.loop.fs_stat(absolute_path)
 | 
			
		||||
@ -313,7 +316,8 @@ end
 | 
			
		||||
 | 
			
		||||
---@return nil
 | 
			
		||||
function FileSelector:show_select_ui()
 | 
			
		||||
  local function handler(selected_paths) self:handle_path_selection(selected_paths) end
 | 
			
		||||
  local handler = Config.file_selector.handler
 | 
			
		||||
  if handler == nil then handler = function(selected_paths) self:handle_path_selection(selected_paths) end end
 | 
			
		||||
 | 
			
		||||
  vim.schedule(function()
 | 
			
		||||
    if Config.file_selector.provider == "native" then
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user