From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0D3D11FF17E for ; Thu, 27 Nov 2025 15:04:35 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 055FB4D19; Thu, 27 Nov 2025 15:04:55 +0100 (CET) From: Dominik Csapak To: pdm-devel@lists.proxmox.com Date: Thu, 27 Nov 2025 15:03:46 +0100 Message-ID: <20251127140451.3131469-3-d.csapak@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251127140451.3131469-1-d.csapak@proxmox.com> References: <20251127140451.3131469-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH datacenter-manager 2/4] ui: dashboard: subscriptions list: update store when data changes X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" by refactoring the tree creation and calling it from `changed` too. Signed-off-by: Dominik Csapak --- ui/src/dashboard/subscriptions_list.rs | 32 ++++++++++++++++++-------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/ui/src/dashboard/subscriptions_list.rs b/ui/src/dashboard/subscriptions_list.rs index 77e5f876..5037a9de 100644 --- a/ui/src/dashboard/subscriptions_list.rs +++ b/ui/src/dashboard/subscriptions_list.rs @@ -79,17 +79,13 @@ impl ExtractPrimaryKey for SubscriptionTreeEntry { } } -impl Component for PdmSubscriptionsList { - type Message = (); - type Properties = SubscriptionsList; - - fn create(ctx: &yew::Context) -> Self { - let subscriptions = sort_subscriptions(&ctx.props().subscriptions); - - let store = TreeStore::new().view_root(false); +impl PdmSubscriptionsList { + fn update_store_data(&self, ctx: &yew::Context) { + let mut store = self.store.write(); let mut tree = KeyedSlabTree::new(); let mut root = tree.set_root(SubscriptionTreeEntry::Root); root.set_expanded(true); + let subscriptions = sort_subscriptions(&ctx.props().subscriptions); for remote in subscriptions { let mut remote_node = root.append(SubscriptionTreeEntry::Remote(RemoteEntry { @@ -114,9 +110,25 @@ impl Component for PdmSubscriptionsList { } } } + store.update_root_tree(tree); + } +} + +impl Component for PdmSubscriptionsList { + type Message = (); + type Properties = SubscriptionsList; + + fn create(ctx: &yew::Context) -> Self { + let this = Self { + store: TreeStore::new().view_root(false), + }; + this.update_store_data(ctx); + this + } - store.write().update_root_tree(tree); - Self { store } + fn changed(&mut self, ctx: &yew::Context, _old_props: &Self::Properties) -> bool { + self.update_store_data(ctx); + true } fn view(&self, _ctx: &yew::Context) -> Html { -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel