import Link from '@atlaskit/link';
import React from 'react';
import { Text } from '@atlaskit/primitives/compiled';
import { md, Example, code, AtlassianInternalWarning } from '@atlaskit/docs';
import MentionWithEditorExample from '../examples/14-mention-with-editor-extending-abstract-mention-resource';
const MentionWithEditorExampleSource = require('!!raw-loader!../examples/14-mention-with-editor-extending-abstract-mention-resource');
const _default_1: any = md`
${()}
## Using Mentions in AK Editor
${(
<>
To use Mention in @atlaskit/editor-core
{', '}
check the 'Editor with mentions' section in editor-core, then follow these steps for a more
involved tutorial:
>
)}
### Option 1: Instantiate a \`MentionResource\`
You can choose to instantiate the existing MentionResource that have defaults in place.
Ensure you plug in the \`mentionNameResolver\` to resolve names that have been pre-selected in the Editor
(else they will show up as @Unknown). You will need a backing service to search and resolve names.
${code`
import { MentionResource, MentionProvider } from '@atlaskit/mention';
const EditorWithMentions = () => {
const mentionProvider = new MentionResource({
url:
'https://atlassian-product-url.net/get-users', // URL to search users
productId: 'atlassian-product',
mentionNameResolver: {
lookupName: async (id: string) => {
const resolved = await resolveUser(id); // custom function to resolve IDs to names
return resolved;
},
cacheName: (id: string, name: string) =>
this.mentionNames.set(id, { id, name, status: MentionNameStatus.OK }), // cache your resolved IDs
},
});
return(
)
}`}
### Option 2: Extend and instantiate an \`AbstractMentionResource\`
Extend the \`AbstractMentionResource\` to provide a more customized mentions experience.
${(
)}
### Option 3: Extend and instantiate a \`SmartMentionResource\`
The Smart Mention Resource is now available to use at @atlassian/smart-mention-resource
This is only available for internal use.
`;
export default _default_1;