chore: vaults improvements

This commit is contained in:
Aman Harwara
2023-08-07 18:38:57 +05:30
parent 0a51034b80
commit 1585d6b8ca
7 changed files with 33 additions and 15 deletions

View File

@@ -28,7 +28,7 @@ const ListItemVaultInfo: FunctionComponent<Props> = ({ item }) => {
const sharedByContact = application.sharedVaults.getItemSharedBy(item) const sharedByContact = application.sharedVaults.getItemSharedBy(item)
return ( return (
<div className="mt-0.5 flex flex-wrap items-center gap-2"> <div className="mt-1 flex flex-wrap items-center gap-2">
<VaultNameBadge vault={vault} /> <VaultNameBadge vault={vault} />
{sharedByContact && ( {sharedByContact && (

View File

@@ -21,7 +21,16 @@ type MenuItemProps = {
const MenuItem = forwardRef( const MenuItem = forwardRef(
( (
{ children, className = '', icon, iconClassName, tabIndex, shortcut, disabled, ...props }: MenuItemProps, {
children,
className = '',
icon,
iconClassName = 'w-6 h-6 md:w-5 md:h-5 text-neutral mr-2',
tabIndex,
shortcut,
disabled,
...props
}: MenuItemProps,
ref: Ref<HTMLButtonElement>, ref: Ref<HTMLButtonElement>,
) => { ) => {
return ( return (

View File

@@ -3,6 +3,7 @@ import Icon from '../Icon/Icon'
import { useApplication } from '../ApplicationProvider' import { useApplication } from '../ApplicationProvider'
import { DecryptedItemInterface } from '@standardnotes/snjs' import { DecryptedItemInterface } from '@standardnotes/snjs'
import { featureTrunkVaultsEnabled } from '@/FeatureTrunk' import { featureTrunkVaultsEnabled } from '@/FeatureTrunk'
import VaultNameBadge from '../Vaults/VaultNameBadge'
type Props = { type Props = {
item: DecryptedItemInterface item: DecryptedItemInterface
@@ -28,13 +29,10 @@ const CollaborationInfoHUD: FunctionComponent<Props> = ({ item }) => {
return ( return (
<div className="flex flex-wrap items-start gap-2"> <div className="flex flex-wrap items-start gap-2">
<div title="Vault name" className={'flex rounded bg-success px-1.5 py-1 text-success-contrast'}> <VaultNameBadge vault={vault} />
<Icon ariaLabel="Shared in vault" type="safe-square" className="mr-1 text-info-contrast" size="medium" />
<span className="mr-auto overflow-hidden text-ellipsis text-xs">{vault.name}</span>
</div>
{lastEditedBy && ( {lastEditedBy && (
<div title="Last edited by" className={'flex rounded bg-info px-1.5 py-1 text-info-contrast'}> <div title="Last edited by" className="flex rounded bg-info px-1.5 py-1 text-info-contrast select-none">
<Icon ariaLabel="Shared by" type="pencil" className="mr-1 text-info-contrast" size="medium" /> <Icon ariaLabel="Shared by" type="pencil" className="mr-1 text-info-contrast" size="medium" />
<span className="mr-auto overflow-hidden text-ellipsis text-xs">{lastEditedBy?.name}</span> <span className="mr-auto overflow-hidden text-ellipsis text-xs">{lastEditedBy?.name}</span>
</div> </div>

View File

@@ -133,7 +133,7 @@ const Vaults = () => {
<PreferencesGroup> <PreferencesGroup>
<PreferencesSegment> <PreferencesSegment>
<Title>Vaults</Title> <Title>Vaults</Title>
<div className="my-2 flex flex-col"> <div className="my-2 flex flex-col gap-3.5">
{vaults.map((vault) => { {vaults.map((vault) => {
return <VaultItem vault={vault} key={vault.uuid} /> return <VaultItem vault={vault} key={vault.uuid} />
})} })}

View File

@@ -6,6 +6,8 @@ import RadioButtonGroup from '@/Components/RadioButtonGroup/RadioButtonGroup'
import ManyVaultSelectionMenu from './ManyVaultSelectionMenu' import ManyVaultSelectionMenu from './ManyVaultSelectionMenu'
import SingleVaultSelectionMenu from './SingleVaultSelectionMenu' import SingleVaultSelectionMenu from './SingleVaultSelectionMenu'
import { useApplication } from '../ApplicationProvider' import { useApplication } from '../ApplicationProvider'
import MenuItemSeparator from '../Menu/MenuItemSeparator'
import MenuItem from '../Menu/MenuItem'
type MenuProps = { type MenuProps = {
controller: VaultSelectionMenuController controller: VaultSelectionMenuController
@@ -41,9 +43,17 @@ const VaultSelectionMenu: FunctionComponent<MenuProps> = () => {
onChange={(value) => changeSelectionMode(value as SettingsMode)} onChange={(value) => changeSelectionMode(value as SettingsMode)}
className="m-3 mt-1" className="m-3 mt-1"
/> />
{mode === 'many' && <ManyVaultSelectionMenu />} {mode === 'many' && <ManyVaultSelectionMenu />}
{mode === 'single' && <SingleVaultSelectionMenu />} {mode === 'single' && <SingleVaultSelectionMenu />}
<MenuItemSeparator />
<MenuItem
icon="settings"
onClick={() => {
application.preferencesController.openPreferences('vaults')
}}
>
Open vault settings
</MenuItem>
</Menu> </Menu>
) )
} }

View File

@@ -8,11 +8,9 @@ type Props = {
const VaultNameBadge: FunctionComponent<Props> = ({ vault }) => { const VaultNameBadge: FunctionComponent<Props> = ({ vault }) => {
return ( return (
<div className={'rounded bg-success px-1.5 py-1 text-danger-contrast'}> <div title="Vault name" className="flex rounded bg-success px-1.5 py-1 text-success-contrast select-none">
<span className="flex items-center" title="Vault name"> <Icon ariaLabel="Shared in vault" type="safe-square" className="mr-1 text-info-contrast" size="medium" />
<Icon ariaLabel="Vault name" type="safe-square" className="mr-1 text-info-contrast" size="medium" /> <span className="mr-auto overflow-hidden text-ellipsis text-xs">{vault.name}</span>
<div className="text-center text-xs font-bold">{vault.name}</div>
</span>
</div> </div>
) )
} }

View File

@@ -29,7 +29,10 @@ export class PreferencesController extends AbstractViewController {
this.currentPane = prefId this.currentPane = prefId
} }
openPreferences = (): void => { openPreferences = (prefId?: PreferenceId): void => {
if (prefId) {
this.currentPane = prefId
}
this._open = true this._open = true
} }