|
596 | 596 | {:component-did-update |
597 | 597 | (fn [this] |
598 | 598 | (let [[_ & {:keys [model]}] (r/argv this) |
599 | | - model-value (u/deref-or-value model)] |
| 599 | + model-value (u/deref-or-value model)] |
600 | 600 | (when (not= model-value |
601 | 601 | (u/deref-or-value prev-model)) |
602 | 602 | (reset! internal-model model-value) |
|
669 | 669 | :model (if change-on-blur? internal-model model)}}))] |
670 | 670 | (u/part (get parts :dropdown (get parts ::dropdown)) |
671 | 671 | {:theme theme |
672 | | - :impl dd/dropdown |
| 672 | + :impl dd/dropdown |
673 | 673 | :post-props {:class (:class args) |
674 | 674 | :style (:style args) |
675 | 675 | :attr (:attr args)} |
|
691 | 691 | :group-label-fn group-label-fn})} |
692 | 692 | :children [anchor-label]}}) |
693 | 693 | :placeholder placeholder |
694 | | - :indicator (fn [props] |
695 | | - (u/part (get parts :dropdown-indicator (get parts ::dropdown-indicator)) |
696 | | - {:impl h-box |
697 | | - :props {:part ::dropdown-indicator |
698 | | - :children |
699 | | - [(u/part box |
700 | | - {:theme theme |
701 | | - :props {:part ::counter |
702 | | - :child (str (count (if change-on-blur? @internal-model (u/deref-or-value model))))}}) |
703 | | - (u/part dd/indicator |
704 | | - {:theme theme |
705 | | - :props (merge {:part ::dropdown-indicator} props)}) |
706 | | - (when (u/deref-or-value show-reset-button?) |
707 | | - [u/x-button |
708 | | - {:on-click (when on-reset |
709 | | - (handler-fn |
710 | | - (.stopPropagation event) |
711 | | - (on-reset (deref-or-value model) |
712 | | - (deref-or-value expanded-groups))))}])]}})) |
713 | 694 | :width width |
714 | 695 | :anchor-width anchor-width |
715 | 696 | :anchor-height anchor-height |
716 | | - :body-header body-header |
717 | | - :body-footer body-footer |
718 | | - :body body |
719 | 697 | :model showing? |
720 | 698 | :on-change (when change-on-blur? |
721 | 699 | (fn [open?] (reset! showing? open?) |
|
728 | 706 | :backdrop (:dropdown-backdrop parts) |
729 | 707 | :anchor-wrapper (:dropdown-anchor-wrapper parts) |
730 | 708 | :anchor (:dropdown-anchor parts) |
731 | | - :indicator (:dropdown-indicator parts) |
| 709 | + :indicator (fn [props] |
| 710 | + (u/part (get parts :dropdown-indicator (get parts ::dropdown-indicator)) |
| 711 | + {:impl h-box |
| 712 | + :theme theme |
| 713 | + :props {:part ::dropdown-indicator |
| 714 | + :children |
| 715 | + [(u/part box |
| 716 | + {:theme theme |
| 717 | + :props {:part ::counter |
| 718 | + :child (str (count (if change-on-blur? @internal-model (u/deref-or-value model))))}}) |
| 719 | + (u/part dd/indicator |
| 720 | + {:theme theme |
| 721 | + :props (merge {:part ::dropdown-indicator} props)}) |
| 722 | + (when (u/deref-or-value show-reset-button?) |
| 723 | + [u/x-button |
| 724 | + {:on-click (when on-reset |
| 725 | + (handler-fn |
| 726 | + (.stopPropagation event) |
| 727 | + (on-reset (deref-or-value model) |
| 728 | + (deref-or-value expanded-groups))))}])]}})) |
732 | 729 | :body-wrapper (merge {:style {:width (or width "221px") |
733 | 730 | :max-height max-height |
734 | 731 | :min-width min-width}} |
735 | 732 | (:dropdown-body-wrapper parts)) |
736 | | - :body-header (:dropdown-body-header parts) |
737 | | - :body (:dropdown-body parts)} |
| 733 | + :body-header body-header |
| 734 | + :body-footer body-footer |
| 735 | + :body body} |
738 | 736 | (:parts (:dropdown parts)))}})))}))) |
0 commit comments