Files
react-native-pubky/example/src/App.tsx
coreyphillips 2fec48a4ad feat: generate secret key
Adds generate_secret_key & get_public_key_from_secret_key functions.
Adds generate_secret_key & get_public_key_from_secret_key functions examples to README.md.
Fix list error on Android.
Bump package version to 0.7.0.
2024-09-29 15:12:44 -04:00

280 lines
7.4 KiB
TypeScript

import { StyleSheet, View, Button } from 'react-native';
import {
auth,
parseAuthUrl,
publish,
resolve,
signUp,
signIn,
signOut,
put,
get,
resolveHttps,
publishHttps,
list,
generateSecretKey,
getPublicKeyFromSecretKey,
} from '@synonymdev/react-native-pubky';
export default function App() {
return (
<View style={styles.container}>
<Button
title={'auth'}
onPress={async (): Promise<void> => {
try {
const res = await auth(
'pubkyauth:///?caps=/pub/pubky.app/:rw,/pub/foo.bar/file:r&secret=U55XnoH6vsMCpx1pxHtt8fReVg4Brvu9C0gUBuw-Jkw&relay=http://167.86.102.121:4173/',
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'parseAuthUrl'}
onPress={async (): Promise<void> => {
try {
const pubkyAuthUrl =
'pubkyauth:///?relay=https://demo.httprelay.io/link&capabilities=/pub/pubky.app:rw,/pub/example.com/nested:rw&secret=FyzJ3gJ1W7boyFZC1Do9fYrRmDNgCLNRwEu_gaBgPUA';
const res = await parseAuthUrl(pubkyAuthUrl);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'publish'}
onPress={async (): Promise<void> => {
try {
const res = await publish(
'recordnametest', // Record Name
'recordcontenttest', // Record Content
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'resolve'}
onPress={async (): Promise<void> => {
try {
const res = await resolve(
'z4e8s17cou9qmuwen8p1556jzhf1wktmzo6ijsfnri9c4hnrdfty' // Public key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'signup'}
onPress={async (): Promise<void> => {
try {
const res = await signUp(
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', // Secret Key
'pubky://8pinxxgqs41n4aididenw5apqp1urfmzdztr8jt4abrkdn435ewo' // Homeserver
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'signin'}
onPress={async (): Promise<void> => {
try {
const res = await signIn(
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'signout'}
onPress={async (): Promise<void> => {
try {
const res = await signOut(
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'put'}
onPress={async (): Promise<void> => {
try {
const res = await put('', { data: 'test data' });
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'get'}
onPress={async (): Promise<void> => {
try {
const res = await get('');
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'publishHttps'}
onPress={async (): Promise<void> => {
try {
const res = await publishHttps(
'example.com', // Record Name
'target.example.com', // Target
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'resolveHttps'}
onPress={async (): Promise<void> => {
try {
const res = await resolveHttps(
'z4e8s17cou9qmuwen8p1556jzhf1wktmzo6ijsfnri9c4hnrdfty' // Public key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'list'}
onPress={async (): Promise<void> => {
try {
const res = await list(
'url' // URL
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'generateSecretKey'}
onPress={async (): Promise<void> => {
try {
const res = await generateSecretKey();
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log('Generated Secret Key:', res.value);
} catch (e) {
console.log(e);
}
}}
/>
<Button
title={'getPublicKeyFromSecretKey'}
onPress={async (): Promise<void> => {
try {
const res = await getPublicKeyFromSecretKey(
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
);
if (res.isErr()) {
console.log(res.error.message);
return;
}
console.log(res.value);
} catch (e) {
console.log(e);
}
}}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
box: {
width: 60,
height: 60,
marginVertical: 20,
},
});