MCPcopy Create free account
hub / github.com/editablejs/editable / useExtension

Function useExtension

packages/plugins/codeblock/src/hooks/use-extension.ts:5–21  ·  view source on GitHub ↗
(
  view: EditorView | null,
  extensionCreator: () => Extension,
  deps: any[],
)

Source from the content-addressed store, hash-verified

3import { useMemo, useEffect } from 'react'
4
5export function useExtension(
6 view: EditorView | null,
7 extensionCreator: () => Extension,
8 deps: any[],
9) {
10 const compartment = useMemo(() => new Compartment(), [])
11 const extension = useMemo(extensionCreator, deps)
12
13 useEffect(() => {
14 if (!view) return
15 if (!compartment.get(view.state)) {
16 view.dispatch({ effects: StateEffect.appendConfig.of(compartment.of(extension)) })
17 } else {
18 view.dispatch({ effects: compartment.reconfigure(extension) })
19 }
20 }, [view, extension])
21}

Callers 5

useLanguageFunction · 0.90
useLineWrappingFunction · 0.90
useIndentFunction · 0.90
useReadOnlyFunction · 0.90
useThemeFunction · 0.90

Calls 1

getMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…