fix: copy share link to clipboard command display issue (#7411)

fix AF-1027
This commit is contained in:
pengx17 2024-07-02 15:28:30 +00:00
parent b8b30e79e5
commit ef7ba273ab
No known key found for this signature in database
GPG Key ID: 23F23D9E8B3971ED
3 changed files with 9 additions and 6 deletions

View File

@ -39,6 +39,7 @@ export interface KeybindingOptions {
export interface AffineCommandOptions {
id: string;
// a set of predefined precondition strategies, but also allow user to customize their own
// note: this only controls the visibility of the command, not the availability (e.g., shortcut keybinding still works)
preconditionStrategy?: PreconditionStrategy | (() => boolean);
// main text on the left..
// make text a function so that we can do i18n and interpolation when we need to
@ -57,7 +58,6 @@ export interface AffineCommandOptions {
category?: CommandCategory;
// we use https://github.com/jamiebuilds/tinykeys so that we can use the same keybinding definition
// for both mac and windows
// TODO(@Peng): render keybinding in command palette
keyBinding?: KeybindingOptions | string;
run: () => void | Promise<void>;
}

View File

@ -1,4 +1,7 @@
import { registerAffineCommand } from '@affine/core/commands';
import {
PreconditionStrategy,
registerAffineCommand,
} from '@affine/core/commands';
import { useSharingUrl } from '@affine/core/hooks/affine/use-share-url';
import { useIsActiveView } from '@affine/core/modules/workbench';
import { WorkspaceFlavour } from '@affine/env/workspace';
@ -28,7 +31,7 @@ export function useRegisterCopyLinkCommands({
registerAffineCommand({
id: `affine:share-private-link:${docId}`,
category: 'affine:general',
preconditionStrategy: () => isActiveView,
preconditionStrategy: PreconditionStrategy.Never,
keyBinding: {
binding: '$mod+Shift+c',
},

View File

@ -160,17 +160,17 @@ export class CommandsQuickSearchSession
return result.map<QuickSearchItem<'commands', AffineCommand>>(
({ item, matches, score = 1 }) => {
const nomalizedRange = ([start, end]: [number, number]) =>
const normalizedRange = ([start, end]: [number, number]) =>
[
start,
end + 1 /* in fuse, the `end` is different from the `substring` */,
] as [number, number];
const titleMatches = matches
?.filter(match => match.key === 'label.title')
.flatMap(match => match.indices.map(nomalizedRange));
.flatMap(match => match.indices.map(normalizedRange));
const subTitleMatches = matches
?.filter(match => match.key === 'label.subTitle')
.flatMap(match => match.indices.map(nomalizedRange));
.flatMap(match => match.indices.map(normalizedRange));
return {
id: 'command:' + item.id,