Merge branch 'master' into dev

This commit is contained in:
MTG2000
2022-09-01 15:51:36 +03:00
13 changed files with 307 additions and 218 deletions

View File

@@ -271,6 +271,7 @@ export interface NexusGenObjects {
payment_request: string; // String! payment_request: string; // String!
} }
WalletKey: { // root type WalletKey: { // root type
is_current: boolean; // Boolean!
key: string; // String! key: string; // String!
name: string; // String! name: string; // String!
} }
@@ -544,6 +545,7 @@ export interface NexusGenFieldTypes {
payment_request: string; // String! payment_request: string; // String!
} }
WalletKey: { // field return type WalletKey: { // field return type
is_current: boolean; // Boolean!
key: string; // String! key: string; // String!
name: string; // String! name: string; // String!
} }
@@ -835,6 +837,7 @@ export interface NexusGenFieldTypeNames {
payment_request: 'String' payment_request: 'String'
} }
WalletKey: { // field return type name WalletKey: { // field return type name
is_current: 'Boolean'
key: 'String' key: 'String'
name: 'String' name: 'String'
} }

View File

@@ -382,6 +382,7 @@ type Vote {
} }
type WalletKey { type WalletKey {
is_current: Boolean!
key: String! key: String!
name: String! name: String!
} }

View File

@@ -171,9 +171,9 @@ const MyProfile = objectType({
t.nonNull.list.nonNull.field('walletsKeys', { t.nonNull.list.nonNull.field('walletsKeys', {
type: "WalletKey", type: "WalletKey",
resolve: (parent) => { resolve: async (parent, _, context) => {
return prisma.user.findUnique({ where: { id: parent.id } }).userKeys(); const userKeys = await prisma.user.findUnique({ where: { id: parent.id } }).userKeys();
return userKeys.map(k => ({ ...k, is_current: k.key === context.userPubKey }))
} }
}); });
} }
@@ -283,6 +283,7 @@ const WalletKey = objectType({
definition(t) { definition(t) {
t.nonNull.string('key'); t.nonNull.string('key');
t.nonNull.string('name'); t.nonNull.string('name');
t.nonNull.boolean('is_current')
} }
}) })

84
package-lock.json generated
View File

@@ -78,6 +78,7 @@
"react-loader-spinner": "^6.0.0-0", "react-loader-spinner": "^6.0.0-0",
"react-loading-skeleton": "^3.1.0", "react-loading-skeleton": "^3.1.0",
"react-modal": "^3.15.1", "react-modal": "^3.15.1",
"react-popper-tooltip": "^4.4.2",
"react-query": "^3.35.0", "react-query": "^3.35.0",
"react-redux": "^8.0.0", "react-redux": "^8.0.0",
"react-router-dom": "^6.3.0", "react-router-dom": "^6.3.0",
@@ -2146,9 +2147,9 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.17.9", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
}, },
@@ -10145,6 +10146,21 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "dev": true
}, },
"node_modules/@storybook/components/node_modules/react-popper-tooltip": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz",
"integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==",
"dev": true,
"dependencies": {
"@babel/runtime": "^7.12.5",
"@popperjs/core": "^2.5.4",
"react-popper": "^2.2.4"
},
"peerDependencies": {
"react": "^16.6.0 || ^17.0.0",
"react-dom": "^16.6.0 || ^17.0.0"
}
},
"node_modules/@storybook/core": { "node_modules/@storybook/core": {
"version": "6.4.22", "version": "6.4.22",
"resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.22.tgz", "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.22.tgz",
@@ -62342,31 +62358,31 @@
} }
}, },
"node_modules/react-popper": { "node_modules/react-popper": {
"version": "2.2.5", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz",
"integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==",
"dependencies": { "dependencies": {
"react-fast-compare": "^3.0.1", "react-fast-compare": "^3.0.1",
"warning": "^4.0.2" "warning": "^4.0.2"
}, },
"peerDependencies": { "peerDependencies": {
"@popperjs/core": "^2.0.0", "@popperjs/core": "^2.0.0",
"react": "^16.8.0 || ^17" "react": "^16.8.0 || ^17 || ^18",
"react-dom": "^16.8.0 || ^17 || ^18"
} }
}, },
"node_modules/react-popper-tooltip": { "node_modules/react-popper-tooltip": {
"version": "3.1.1", "version": "4.4.2",
"resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-4.4.2.tgz",
"integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", "integrity": "sha512-y48r0mpzysRTZAIh8m2kpZ8S1YPNqGtQPDrlXYSGvDS1c1GpG/NUXbsbIdfbhXfmSaRJuTcaT6N1q3CKuHRVbg==",
"dev": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.18.3",
"@popperjs/core": "^2.5.4", "@popperjs/core": "^2.11.5",
"react-popper": "^2.2.4" "react-popper": "^2.3.0"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.6.0 || ^17.0.0", "react": ">=16.6.0",
"react-dom": "^16.6.0 || ^17.0.0" "react-dom": ">=16.6.0"
} }
}, },
"node_modules/react-query": { "node_modules/react-query": {
@@ -72168,9 +72184,9 @@
} }
}, },
"@babel/runtime": { "@babel/runtime": {
"version": "7.17.9", "version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
"integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
"requires": { "requires": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
@@ -78241,6 +78257,17 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "dev": true
},
"react-popper-tooltip": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz",
"integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@popperjs/core": "^2.5.4",
"react-popper": "^2.2.4"
}
} }
} }
}, },
@@ -118366,23 +118393,22 @@
"integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==" "integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q=="
}, },
"react-popper": { "react-popper": {
"version": "2.2.5", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz",
"integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==",
"requires": { "requires": {
"react-fast-compare": "^3.0.1", "react-fast-compare": "^3.0.1",
"warning": "^4.0.2" "warning": "^4.0.2"
} }
}, },
"react-popper-tooltip": { "react-popper-tooltip": {
"version": "3.1.1", "version": "4.4.2",
"resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-4.4.2.tgz",
"integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", "integrity": "sha512-y48r0mpzysRTZAIh8m2kpZ8S1YPNqGtQPDrlXYSGvDS1c1GpG/NUXbsbIdfbhXfmSaRJuTcaT6N1q3CKuHRVbg==",
"dev": true,
"requires": { "requires": {
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.18.3",
"@popperjs/core": "^2.5.4", "@popperjs/core": "^2.11.5",
"react-popper": "^2.2.4" "react-popper": "^2.3.0"
} }
}, },
"react-query": { "react-query": {

View File

@@ -73,6 +73,7 @@
"react-loader-spinner": "^6.0.0-0", "react-loader-spinner": "^6.0.0-0",
"react-loading-skeleton": "^3.1.0", "react-loading-skeleton": "^3.1.0",
"react-modal": "^3.15.1", "react-modal": "^3.15.1",
"react-popper-tooltip": "^4.4.2",
"react-query": "^3.35.0", "react-query": "^3.35.0",
"react-redux": "^8.0.0", "react-redux": "^8.0.0",
"react-router-dom": "^6.3.0", "react-router-dom": "^6.3.0",

View File

@@ -158,14 +158,14 @@ export default function LoginPage() {
<h2 className='text-h5 font-bold text-center'>Login with lightning </h2> <h2 className='text-h5 font-bold text-center'>Login with lightning </h2>
<a href={`lightning:${lnurl}`} > <a href={`lightning:${lnurl}`} >
<QRCodeSVG <QRCodeSVG
width={240} width={280}
height={240} height={280}
value={lnurl} value={lnurl}
bgColor='transparent' bgColor='transparent'
imageSettings={{ imageSettings={{
src: '/assets/images/nut_3d.png', src: '/assets/images/nut_3d.png',
width: 32, width: 16,
height: 32, height: 16,
excavate: true, excavate: true,
}} }}

View File

@@ -38,6 +38,7 @@ export default function LinkedAccountsCard({ value, onChange }: Props) {
onChange([...value.slice(0, idx), ...value.slice(idx + 1)]) onChange([...value.slice(0, idx), ...value.slice(idx + 1)])
} }
const hasMultiWallets = value.length > 1;
return ( return (
<Card> <Card>
@@ -50,32 +51,13 @@ export default function LinkedAccountsCard({ value, onChange }: Props) {
{value.map((item, idx) => {value.map((item, idx) =>
<WalletKey <WalletKey
key={idx} key={idx}
hasMultiWallets={hasMultiWallets}
walletKey={item} walletKey={item}
canDelete={value.length > 1}
onRename={v => updateKeyName(idx, v)} onRename={v => updateKeyName(idx, v)}
onDelete={() => deleteKey(idx)} onDelete={() => deleteKey(idx)}
/> />
)} )}
</ul> </ul>
{/* <div className="flex justify-end gap-8">
<Button
color='gray'
className=''
disabled={!keysState.hasNewChanges || updatingKeysStatus.loading}
onClick={cancelChanges}
>
Cancel
</Button>
<Button
color='black'
className=''
disabled={!keysState.hasNewChanges}
isLoading={updatingKeysStatus.loading}
onClick={saveChanges}
>
Save Changes
</Button>
</div> */}
</div> </div>
{value.length < 3 && {value.length < 3 &&
<Button color='none' size='sm' className='mt-16 text-gray-600 hover:bg-gray-50' onClick={connectNewWallet}> <Button color='none' size='sm' className='mt-16 text-gray-600 hover:bg-gray-50' onClick={connectNewWallet}>

View File

@@ -1,24 +1,26 @@
import { useToggle } from '@react-hookz/web'; import { useToggle } from '@react-hookz/web';
import { createAction } from '@reduxjs/toolkit'; import { createAction } from '@reduxjs/toolkit';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { FiTrash2 } from 'react-icons/fi'; import { FiTrash2, FiLock } from 'react-icons/fi';
import Button from 'src/Components/Button/Button'; import Button from 'src/Components/Button/Button';
import IconButton from 'src/Components/IconButton/IconButton'; import IconButton from 'src/Components/IconButton/IconButton';
import { useReduxEffect } from 'src/utils/hooks/useReduxEffect'; import { useReduxEffect } from 'src/utils/hooks/useReduxEffect';
import { WalletKeyType } from './LinkedAccountsCard' import { WalletKeyType } from './LinkedAccountsCard'
import { useAppDispatch } from "src/utils/hooks"; import { useAppDispatch } from "src/utils/hooks";
import { openModal } from "src/redux/features/modals.slice"; import { openModal } from "src/redux/features/modals.slice";
import 'react-popper-tooltip/dist/styles.css';
import { usePopperTooltip } from 'react-popper-tooltip';
interface Props { interface Props {
walletKey: WalletKeyType, walletKey: WalletKeyType,
canDelete: boolean; hasMultiWallets?: boolean;
onRename: (newName: string) => void onRename: (newName: string) => void
onDelete: () => void onDelete: () => void
} }
export default function WalletKey({ walletKey, canDelete, onRename, onDelete }: Props) { export default function WalletKey({ walletKey, hasMultiWallets, onRename, onDelete }: Props) {
const ref = useRef<HTMLInputElement>(null!); const ref = useRef<HTMLInputElement>(null!);
const [name, setName] = useState(walletKey.name); const [name, setName] = useState(walletKey.name);
@@ -26,6 +28,15 @@ export default function WalletKey({ walletKey, canDelete, onRename, onDelete }:
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const {
getArrowProps,
getTooltipProps,
setTooltipRef,
setTriggerRef,
visible,
} = usePopperTooltip();
const CONFIRM_DELETE_WALLET = useMemo(() => createAction<{ confirmed?: boolean }>(`CONFIRM_DELETE_WALLET_${walletKey.key.slice(0, 10)}`)({}), [walletKey.key]) const CONFIRM_DELETE_WALLET = useMemo(() => createAction<{ confirmed?: boolean }>(`CONFIRM_DELETE_WALLET_${walletKey.key.slice(0, 10)}`)({}), [walletKey.key])
const saveNameChanges = () => { const saveNameChanges = () => {
@@ -80,11 +91,31 @@ export default function WalletKey({ walletKey, canDelete, onRename, onDelete }:
onClick={saveNameChanges} onClick={saveNameChanges}
>Save</Button>} >Save</Button>}
</div> </div>
{canDelete && <IconButton {hasMultiWallets && <div className="min-w-[60px] flex justify-center">
{!walletKey.is_current ?
<IconButton
size='sm' size='sm'
className='text-red-500 shrink-0' className='text-red-500 shrink-0 mx-auto'
onClick={() => handleDelete()} onClick={() => handleDelete()}
><FiTrash2 /> </IconButton>} ><FiTrash2 /> </IconButton>
: <>
<span ref={setTriggerRef} >
<FiLock className="text-body4 text-gray-400" />
</span>
{visible && (
<div
ref={setTooltipRef}
{...getTooltipProps({ className: 'tooltip-container !bg-gray-900 !text-white text-body5 !rounded-12 !p-12' })}
>
<div {...getArrowProps({ className: 'tooltip-arrow' })} />
You're now logged-in with this wallet. <br /> To remove it, login to your account with a different wallet.
</div>
)}
</>
}
</div>}
</li> </li>
) )
} }

View File

@@ -16,12 +16,15 @@ export default function PreferencesTabSkeleton() {
<div className='mt-24 flex flex-col gap-16'> <div className='mt-24 flex flex-col gap-16'>
<ul className="mt-8 relative flex flex-col gap-8"> <ul className="mt-8 relative flex flex-col gap-8">
{Array(3).fill(0).map((_, idx) => {Array(3).fill(0).map((_, idx) =>
<li key={idx} className="flex flex-wrap gap-16 justify-between items-center text-body4 border-b py-12 px-16 border border-gray-200 rounded-16 focus-within:ring-1 ring-primary-200"> <div key={idx} className='flex gap-16'>
<li className="grow flex flex-wrap gap-16 justify-between items-center text-body4 border-b py-12 px-16 border border-gray-200 rounded-16 focus-within:ring-1 ring-primary-200">
<div className='p-0 border-0 focus:border-0 focus:outline-none grow <div className='p-0 border-0 focus:border-0 focus:outline-none grow
focus:ring-0 placeholder:!text-gray-400' > focus:ring-0 placeholder:!text-gray-400' >
<Skeleton width='20ch'></Skeleton> <Skeleton width='20ch'></Skeleton>
</div> </div>
</li> </li>
<div className="min-w-[60px]"></div>
</div>
)} )}
</ul> </ul>

View File

@@ -4,6 +4,7 @@ query MyProfilePreferences {
walletsKeys { walletsKeys {
key key
name name
is_current
} }
nostr_prv_key nostr_prv_key
nostr_pub_key nostr_pub_key

View File

@@ -549,6 +549,7 @@ export type Vote = {
export type WalletKey = { export type WalletKey = {
__typename?: 'WalletKey'; __typename?: 'WalletKey';
is_current: Scalars['Boolean'];
key: Scalars['String']; key: Scalars['String'];
name: Scalars['String']; name: Scalars['String'];
}; };
@@ -672,6 +673,38 @@ export type UpdateProfileAboutMutation = { __typename?: 'Mutation', updateProfil
export type MyProfilePreferencesQueryVariables = Exact<{ [key: string]: never; }>; export type MyProfilePreferencesQueryVariables = Exact<{ [key: string]: never; }>;
type UserBasicInfo_User_Fragment = { __typename?: 'User', id: number, name: string, avatar: string, join_date: any, role: string | null, email: string | null, jobTitle: string | null, lightning_address: string | null, website: string | null, twitter: string | null, github: string | null, linkedin: string | null, bio: string | null, location: string | null };
export type MyProfilePreferencesQuery = { __typename?: 'Query', me: { __typename?: 'MyProfile', id: number, nostr_prv_key: string | null, nostr_pub_key: string | null, walletsKeys: Array<{ __typename?: 'WalletKey', key: string, name: string, is_current: boolean }> } | null };
export type UpdateUserPreferencesMutationVariables = Exact<{
walletsKeys: InputMaybe<Array<UserKeyInputType> | UserKeyInputType>;
}>;
export type UpdateUserPreferencesMutation = { __typename?: 'Mutation', updateUserPreferences: { __typename?: 'MyProfile', id: number, nostr_pub_key: string | null, nostr_prv_key: string | null, walletsKeys: Array<{ __typename?: 'WalletKey', key: string, name: string }> } };
>>>>>>> master
type UserRolesSkills_MyProfile_Fragment = { __typename?: 'MyProfile', skills: Array<{ __typename?: 'MakerSkill', id: number, title: string }>, roles: Array<{ __typename?: 'MakerRole', id: number, title: string, icon: string, level: RoleLevelEnum }> };
type UserRolesSkills_User_Fragment = { __typename?: 'User', skills: Array<{ __typename?: 'MakerSkill', id: number, title: string }>, roles: Array<{ __typename?: 'MakerRole', id: number, title: string, icon: string, level: RoleLevelEnum }> };
export type UserRolesSkillsFragment = UserRolesSkills_MyProfile_Fragment | UserRolesSkills_User_Fragment;
export type MyProfileRolesSkillsQueryVariables = Exact<{ [key: string]: never; }>;
export type MyProfileRolesSkillsQuery = { __typename?: 'Query', me: { __typename?: 'MyProfile', id: number, skills: Array<{ __typename?: 'MakerSkill', id: number, title: string }>, roles: Array<{ __typename?: 'MakerRole', id: number, title: string, icon: string, level: RoleLevelEnum }> } | null, getAllMakersRoles: Array<{ __typename?: 'GenericMakerRole', id: number, title: string, icon: string }>, getAllMakersSkills: Array<{ __typename?: 'MakerSkill', id: number, title: string }> };
export type UpdateUserRolesSkillsMutationVariables = Exact<{
data: InputMaybe<ProfileRolesInput>;
}>;
export type UpdateUserRolesSkillsMutation = { __typename?: 'Mutation', updateProfileRoles: { __typename?: 'MyProfile', id: number, skills: Array<{ __typename?: 'MakerSkill', id: number, title: string }>, roles: Array<{ __typename?: 'MakerRole', id: number, title: string, icon: string, level: RoleLevelEnum }> } | null };
export type MyProfilePreferencesQueryVariables = Exact<{ [key: string]: never; }>;
export type MyProfilePreferencesQuery = { __typename?: 'Query', me: { __typename?: 'MyProfile', id: number, nostr_prv_key: string | null, nostr_pub_key: string | null, walletsKeys: Array<{ __typename?: 'WalletKey', key: string, name: string }> } | null }; export type MyProfilePreferencesQuery = { __typename?: 'Query', me: { __typename?: 'MyProfile', id: number, nostr_prv_key: string | null, nostr_pub_key: string | null, walletsKeys: Array<{ __typename?: 'WalletKey', key: string, name: string }> } | null };
@@ -1591,6 +1624,7 @@ export const MyProfilePreferencesDocument = gql`
walletsKeys { walletsKeys {
key key
name name
is_current
} }
nostr_prv_key nostr_prv_key
nostr_pub_key nostr_pub_key

View File

@@ -118,11 +118,13 @@ export const user: User & MyProfile = {
walletsKeys: [ walletsKeys: [
{ {
key: "1645h234j2421zxvertw", key: "1645h234j2421zxvertw",
name: "My Alby wallet key" name: "My Alby wallet key",
is_current: true
}, },
{ {
key: "66345134234235", key: "66345134234235",
name: "My Phoenix wallet key" name: "My Phoenix wallet key",
is_current: false
},], },],
roles: randomItems(3, ...allMakersRoles).map(role => ({ ...role, level: randomItem(...Object.values(RoleLevelEnum)) })), roles: randomItems(3, ...allMakersRoles).map(role => ({ ...role, level: randomItem(...Object.values(RoleLevelEnum)) })),
skills: randomItems(7, ...allMakersSkills), skills: randomItems(7, ...allMakersSkills),

View File

@@ -39,3 +39,7 @@
transition-timing-function: ease-in; transition-timing-function: ease-in;
transition-duration: 400ms; transition-duration: 400ms;
} }
.tooltip-arrow::after {
border-color: var(--arrowColor, #101828) transparent !important;
}