2
2
import {
3
3
codeLangAtom ,
4
4
codeMirrorValueAtom ,
5
+ innkeeperWriteAtom ,
5
6
isMatchedAtom ,
6
7
} from "@/libs/room-jotai" ;
7
8
import { ExclamationCircleFilled } from "@ant-design/icons" ;
8
9
import { Button } from "antd" ;
9
- import { useAtom , useAtomValue , useSetAtom } from "jotai" ;
10
+ import { atom , useAtom , useAtomValue , useSetAtom } from "jotai" ;
10
11
import dynamic from "next/dynamic" ;
11
12
import { useEffect , useState } from "react" ;
12
13
import Skeleton from "react-loading-skeleton" ;
@@ -45,6 +46,17 @@ const UiElementOnClose = () => {
45
46
) ;
46
47
} ;
47
48
49
+ const codeLangAtomWrapper = atom (
50
+ ( get ) => get ( codeLangAtom ) ,
51
+ ( _get , set , lang : string ) => {
52
+ set ( codeLangAtom , lang ) ;
53
+ set ( innkeeperWriteAtom , {
54
+ eventName : "sendUpdate" ,
55
+ eventArgs : [ { language : lang } ] ,
56
+ } ) ;
57
+ } ,
58
+ ) ;
59
+
48
60
const CodeMirrorEditor = ( {
49
61
userId,
50
62
authToken,
@@ -58,7 +70,7 @@ const CodeMirrorEditor = ({
58
70
const setCodeMirrorValue = useSetAtom ( codeMirrorValueAtom ) ;
59
71
const isMatched = useAtomValue ( isMatchedAtom ) ;
60
72
61
- const [ selectedLanguage , setSelectedLanguage ] = useAtom ( codeLangAtom ) ;
73
+ const [ selectedLanguage , setSelectedLanguage ] = useAtom ( codeLangAtomWrapper ) ;
62
74
const [ languageExtension , setLanguageExtension ] = useState < any > ( null ) ;
63
75
const [ dragging , setDragging ] = useState < boolean > ( false ) ;
64
76
const [ startY , setStartY ] = useState < number > ( 0 ) ; // To track the Y position where drag started
0 commit comments