useAutoSuggest Composable
File: src/composables/useAutoSuggest.ts
Overview
Exports
- clearBridgedUsersCache - function export
- AutoSuggestTrigger - interface export
- AutoSuggestState - interface export
- AutoSuggestConfig - interface export
- useAutoSuggest - function export
Functions
isCacheValid(entry: CachedBridgedUsers | undefined)
No description available.
Parameters:
entry: CachedBridgedUsers | undefined
Returns: boolean
function isCacheValid(entry: CachedBridgedUsers | undefined): booleanpruneCache()
No description available.
Parameters: None
Returns: void
function pruneCache()clearBridgedUsersCache(channelId?: string)
No description available.
Parameters:
channelId?: string
Returns: void
export function clearBridgedUsersCache(channelId?: string)hasBridgeBots(serverId: string | null)
No description available.
Parameters:
serverId: string | null
Returns: Promise<boolean>
const hasBridgeBots = async (serverId: string | null): Promise<boolean> =>requestPromise(async ()
No description available.
Parameters:
async (
Returns: Unknown
const requestPromise = (async () =>fetchBridgedUsers(channelId: string)
No description available.
Parameters:
channelId: string
Returns: Unknown
const fetchBridgedUsers = async (channelId: string) =>fetchPromise(async ()
No description available.
Parameters:
async (
Returns: Promise<BridgedUser[]>
const fetchPromise = (async (): Promise<BridgedUser[]> =>fetchServerRoles(serverId: string)
No description available.
Parameters:
serverId: string
Returns: Unknown
const fetchServerRoles = async (serverId: string) =>searchActivityPubUsers(query: string)
No description available.
Parameters:
query: string
Returns: Unknown
const searchActivityPubUsers = async (query: string) =>calculateCursorPosition()
No description available.
Parameters: None
Returns: SuggestionPosition
const calculateCursorPosition = (): SuggestionPosition =>handleInput(value: string, cursorPosition: number)
No description available.
Parameters:
value: stringcursorPosition: number
Returns: Unknown
const handleInput = (value: string, cursorPosition: number) =>handleKeyDown(event: KeyboardEvent)
No description available.
Parameters:
event: KeyboardEvent
Returns: boolean
const handleKeyDown = (event: KeyboardEvent): boolean =>selectSuggestion(suggestion: SuggestionItem)
No description available.
Parameters:
suggestion: SuggestionItem
Returns: string
const selectSuggestion = (suggestion: SuggestionItem): string =>closeSuggestions()
No description available.
Parameters: None
Returns: Unknown
const closeSuggestions = () =>updatePosition()
No description available.
Parameters: None
Returns: Unknown
const updatePosition = () =>checkBridgeBotsIfNeeded(serverId: string | null)
No description available.
Parameters:
serverId: string | null
Returns: Unknown
const checkBridgeBotsIfNeeded = async (serverId: string | null) =>Interfaces
BridgedUser
No description available.
interface BridgedUser {
id: string;
username: string;
displayName: string;
avatarUrl: string;
source: 'discord';
}CachedBridgedUsers
No description available.
interface CachedBridgedUsers {
users: BridgedUser[];
timestamp: number;
}AutoSuggestTrigger
No description available.
interface AutoSuggestTrigger {
char: string;
pattern: RegExp;
type: 'emoji' | 'mention';
}AutoSuggestState
No description available.
interface AutoSuggestState {
isActive: boolean;
triggerType: 'emoji' | 'mention' | null;
query: string;
triggerPosition: number;
selectedIndex: number;
position: SuggestionPosition;
}AutoSuggestConfig
No description available.
interface AutoSuggestConfig {
mode: 'chat' | 'activitypub';
enableEmojis?: boolean;
enableMentions?: boolean;
maxSuggestions?: number;
}RichTextEditorRef
No description available.
interface RichTextEditorRef {
getCursorPosition?: () => number;
focus?: () => void;
insertTextAtCursor?: (text: string) => void;
$el?: HTMLElement;
}Type Definitions
InputElementType
No description available.
type InputElementType = HTMLTextAreaElement | HTMLInputElement | RichTextEditorRef | any;Constants
BRIDGED_USERS_CACHE_TTL
No description available.
const BRIDGED_USERS_CACHE_TTL = 5 * 60 * 1000BRIDGED_USERS_CACHE_MAX_SIZE
No description available.
const BRIDGED_USERS_CACHE_MAX_SIZE = 50BRIDGE_BOT_CHECK_CACHE_TTL
No description available.
const BRIDGE_BOT_CHECK_CACHE_TTL = 5 * 60 * 1000Source Code Insights
File Size: 38580 characters Lines of Code: 1057 Imports: 13
Usage Example
import { clearBridgedUsersCache, AutoSuggestTrigger, AutoSuggestState, AutoSuggestConfig, useAutoSuggest } from '@/composables/useAutoSuggest'
// Example usage
isCacheValid()This documentation was automatically generated from the source code.
