fix(file_selector): make sure to flatten selected_paths if picker yields a single string (#1153)

This commit is contained in:
Aaron Pham 2025-02-01 09:46:01 -05:00 committed by GitHub
parent 5d1bc6e8b4
commit 692c168e5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View File

@ -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,

View File

@ -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