Fix profile form removing unknown metadata fields

This commit is contained in:
hzrd149
2024-02-12 16:38:01 +00:00
parent 7ddebb01e7
commit 0c36f57f64
3 changed files with 16 additions and 10 deletions

View File

@@ -0,0 +1,5 @@
---
"nostrudel": patch
---
Fix profile form removing unknown metadata fields

View File

@@ -205,27 +205,27 @@ export const ProfileEditView = () => {
);
const handleSubmit = async (data: FormData) => {
const metadata: Kind0ParsedContent = {
const newMetadata: Kind0ParsedContent = {
name: data.username,
picture: data.picture,
};
if (data.displayName) metadata.displayName = metadata.display_name = data.displayName;
if (data.about) metadata.about = data.about;
if (data.website) metadata.website = data.website;
if (data.nip05) metadata.nip05 = data.nip05;
if (data.displayName) newMetadata.displayName = newMetadata.display_name = data.displayName;
if (data.about) newMetadata.about = data.about;
if (data.website) newMetadata.website = data.website;
if (data.nip05) newMetadata.nip05 = data.nip05;
if (data.lightningAddress) {
if (isLNURL(data.lightningAddress)) {
metadata.lud06 = data.lightningAddress;
newMetadata.lud06 = data.lightningAddress;
} else if (isLightningAddress(data.lightningAddress)) {
metadata.lud16 = data.lightningAddress;
newMetadata.lud16 = data.lightningAddress;
}
}
const draft: DraftNostrEvent = {
created_at: dayjs().unix(),
kind: 0,
content: JSON.stringify(metadata),
content: JSON.stringify({ ...metadata, ...newMetadata }),
tags: [],
};

View File

@@ -10,6 +10,7 @@ import {
ButtonGroup,
Text,
Input,
Flex,
} from "@chakra-ui/react";
import { addEvents, countEvents, countEventsByKind, getEventUID, updateUsed } from "nostr-idb";
import stringify from "json-stringify-deterministic";
@@ -119,7 +120,7 @@ export default function DatabaseSettings() {
</h2>
<AccordionPanel>
<DatabaseStats />
<ButtonGroup mt="2">
<Flex mt="2" gap="2" wrap="wrap">
<Button onClick={handleClearData} isLoading={clearing}>
Clear cache
</Button>
@@ -130,7 +131,7 @@ export default function DatabaseSettings() {
<Button colorScheme="red" onClick={handleDeleteDatabase} isLoading={deleting}>
Delete database
</Button>
</ButtonGroup>
</Flex>
</AccordionPanel>
</AccordionItem>
);