From a7c4842d60871be68bae1a9869e8710dfdba5fa9 Mon Sep 17 00:00:00 2001 From: M Date: Tue, 24 Mar 2026 07:44:46 +1100 Subject: [PATCH] =?UTF-8?q?Wire=20ImportFollowListDialog=20into=20File=20m?= =?UTF-8?q?enu=20(=E2=87=A7=E2=8C=98I)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dialog was created but never accessible from the UI. Now: - Added 'Import Follow List…' menu item in File menu (Shift+Cmd+I / Shift+Ctrl+I) - showImportFollowListDialog state threaded through App composable - Dialog rendered alongside ComposeNoteDialog and AddColumnDialog --- .../vitorpamplona/amethyst/desktop/Main.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/Main.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/Main.kt index ac1a19092..67639e0ec 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/Main.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/Main.kt @@ -114,6 +114,7 @@ import com.vitorpamplona.amethyst.desktop.service.namecoin.DesktopNamecoinNameSe import com.vitorpamplona.amethyst.desktop.service.namecoin.DesktopNamecoinPreferences import com.vitorpamplona.amethyst.desktop.service.namecoin.LocalNamecoinPreferences import com.vitorpamplona.amethyst.desktop.service.namecoin.LocalNamecoinService +import com.vitorpamplona.amethyst.desktop.ui.ImportFollowListDialog import com.vitorpamplona.amethyst.desktop.ui.profile.ProfileInfoCard import com.vitorpamplona.amethyst.desktop.ui.relay.LocalRelayCategories import com.vitorpamplona.amethyst.desktop.ui.relay.RelayStatusCard @@ -258,6 +259,8 @@ fun main() { val accountManager = remember { AccountManager.create() } val accountState by accountManager.accountState.collectAsState() var showAppDrawer by remember { mutableStateOf(false) } + var showAddColumnDialog by remember { mutableStateOf(false) } + var showImportFollowListDialog by remember { mutableStateOf(false) } // Tor state at Window level — survives key() app rebuild var torSettings by remember { @@ -382,6 +385,18 @@ fun main() { }, ) Separator() + Item( + "Import Follow List…", + shortcut = + if (isMacOS) { + KeyShortcut(Key.I, meta = true, shift = true) + } else { + KeyShortcut(Key.I, ctrl = true, shift = true) + }, + onClick = { showImportFollowListDialog = true }, + enabled = accountState is AccountState.LoggedIn, + ) + Separator() Item( "Logout", onClick = { @@ -612,6 +627,8 @@ fun main() { onDismissAppDrawer = { showAppDrawer = false }, onShowAppDrawer = { showAppDrawer = true }, replyToNote = replyToNote, + showImportFollowListDialog = showImportFollowListDialog, + onDismissImportFollowListDialog = { showImportFollowListDialog = false }, onRestartApp = { appRestartKey++ }, torManager = torManager, torTypeFlow = torTypeFlow, @@ -640,6 +657,8 @@ fun App( onDismissAppDrawer: () -> Unit, onShowAppDrawer: () -> Unit, replyToNote: com.vitorpamplona.quartz.nip01Core.core.Event?, + showImportFollowListDialog: Boolean = false, + onDismissImportFollowListDialog: () -> Unit = {}, onRestartApp: () -> Unit = {}, torManager: com.vitorpamplona.amethyst.desktop.tor.DesktopTorManager, torTypeFlow: kotlinx.coroutines.flow.MutableStateFlow,