mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-10-29 17:02:05 +00:00
Merge branch 'overstory/builder-profile-v4/SeedPass-9033' into beta
This commit is contained in:
commit
f2b7feb738
5 files changed
+29
-9
No files matched your search
@@ -71,6 +71,15 @@ MAINTENANCE_CSS = """
|
||||
min-height: 3;
|
||||
}
|
||||
|
||||
.maintenance-status-warning {
|
||||
background: #4a3800;
|
||||
color: #ffdd88;
|
||||
border: solid #aa7700;
|
||||
padding: 1;
|
||||
margin-top: 1;
|
||||
min-height: 3;
|
||||
}
|
||||
|
||||
.maintenance-label {
|
||||
color: #ffffff;
|
||||
text-style: bold;
|
||||
@@ -116,6 +125,19 @@ MAINTENANCE_CSS = """
|
||||
"""
|
||||
|
||||
|
||||
_STATUS_ICONS: dict[str, str] = {
|
||||
"ready": "◎",
|
||||
"working": "⟳",
|
||||
"success": "✓",
|
||||
"warning": "⚠",
|
||||
"error": "✗",
|
||||
"danger": "⚠",
|
||||
"info": "ℹ",
|
||||
}
|
||||
|
||||
|
||||
def format_status(level: str, message: str) -> str:
|
||||
prefix = level.strip().capitalize() or "Info"
|
||||
return f"{prefix}: {message}"
|
||||
key = level.strip().lower()
|
||||
icon = _STATUS_ICONS.get(key, "◉")
|
||||
prefix = key.capitalize() or "Info"
|
||||
return f"{icon} {prefix}: {message}"
|
||||
@@ -46,7 +46,7 @@ class ProfileManagementScreen(Screen):
|
||||
yield Static("SeedPass ◈ Profile Management", classes="maintenance-title")
|
||||
with Container(id="profile-container", classes="maintenance-panel-dark"):
|
||||
yield Static(
|
||||
"Switch between profiles or remove unused ones. The active profile is marked with *. Removing a profile requires confirmation.",
|
||||
"Switch between profiles or remove unused ones. The active profile is marked with ►. Each profile is identified by its fingerprint. Removing a profile is permanent and requires confirmation.",
|
||||
id="profile-intro",
|
||||
classes="maintenance-intro-dark",
|
||||
)
|
||||
@@ -105,7 +105,7 @@ class ProfileManagementScreen(Screen):
|
||||
for idx, profile in enumerate(profiles, start=1):
|
||||
fingerprint = profile["fingerprint"]
|
||||
label = profile["label"]
|
||||
marker = "*" if fingerprint == current else " "
|
||||
marker = "►" if fingerprint == current else " "
|
||||
lines.append(f"{idx}. {marker} {label}")
|
||||
if not profiles:
|
||||
lines.append("(none)")
|
||||
|
||||
@@ -12,8 +12,8 @@ class NostrPubkeyScreen(Screen):
|
||||
"""Display the active profile npub and its public QR payload."""
|
||||
|
||||
BINDINGS = [
|
||||
("escape", "app.pop_screen", "Back"),
|
||||
("c", "copy_pubkey", "Copy npub"),
|
||||
Binding("escape", "app.pop_screen", "Back", show=True),
|
||||
Binding("c", "copy_pubkey", "Copy npub", show=True),
|
||||
]
|
||||
|
||||
CSS = (
|
||||
|
||||
@@ -196,8 +196,6 @@ class RelaysScreen(Screen):
|
||||
async def _perform_sync(self) -> None:
|
||||
sync_service = self.app.services.get("sync")
|
||||
try:
|
||||
import traceback
|
||||
|
||||
sync_service.sync()
|
||||
self.app.call_from_thread(
|
||||
self.app.notify, "Synchronization complete", severity="information"
|
||||
|
||||
@@ -114,7 +114,7 @@ class BackupParentSeedScreen(Screen):
|
||||
)
|
||||
yield Label("Destination Path", classes="maintenance-label")
|
||||
yield Input(placeholder="seed-backup.enc", id="backup-seed-path", classes="maintenance-input")
|
||||
yield Label("Backup Password (optional)", classes="maintenance-label")
|
||||
yield Label("Backup Passphrase (optional — encrypts the exported seed bundle)", classes="maintenance-label")
|
||||
yield Input(password=True, id="backup-seed-password", classes="maintenance-input")
|
||||
yield Static(
|
||||
format_status("ready", "Enter the backup destination path to export an encrypted seed bundle."),
|
||||
|
||||
Reference in new issue
Block a user