fix: Fix select after refactor

This commit is contained in:
Timo Reymann
2023-02-17 12:44:41 +01:00
parent 3326ecbcc4
commit 7f931855a5
+18 -19
View File
@@ -59,16 +59,6 @@ _increment_selected() {
echo -n $selected
}
# checks if $1 contains element $2
_contains() {
items=$1
search=$2
for item in "${items[@]}"; do
if [ "$item" == "$search" ]; then return 0; fi
done
return 1
}
# @description Prompt for text
# @arg $1 string Phrase for prompting to text
# @stderr Instructions for user
@@ -203,12 +193,14 @@ checkbox() {
local idx=0
for opt in "${opts[@]}"; do
_cursor_to $((startrow + idx))
local icon
if _contains "${checked[*]}" $idx; then
icon=$(echo -en "\u25C9")
else
icon=$(echo -en "\u25EF")
fi
local icon=""
for item in "${checked[@]}"; do
if [ "$item" == "$idx" ]; then
icon="◉"
break;
fi
done
if [ $idx -eq $selected ]; then
printf "%s \e[0m\e[36m\u276F\e[0m \e[36m%-50s\e[0m" "$icon" "$opt" >&2
else
@@ -221,8 +213,15 @@ checkbox() {
case $(_key_input) in
enter) break;;
space)
if _contains "${checked[*]}" $selected; then
checked=( "${checked[@]/$selected}" )
local found=0;
for item in "${checked[@]}"; do
if [ "$item" == "$selected" ]; then
found=1
break;
fi
done
if [ $found -eq 1 ]; then
checked=( "${checked[@]/$selected}" )
else
checked+=("${selected}")
fi
@@ -236,7 +235,7 @@ checkbox() {
_cursor_to "${lastrow}"
_cursor_blink_on
IFS=" " echo -n "${checked[@]}"
IFS="" echo -n "${checked[@]}"
}
# @description Show password prompt displaying stars for each password character letter typed