@@ -22,36 +22,39 @@ const Tabs: FlowComponent<Props, Component<any>> = (props) => {
2222 const [ getRenamingMode , setRenamingMode ] = createSignal ( false ) ;
2323
2424 return (
25- < div class = "tab flex-shrink-0 flex items-center" classList = { { "tab-active" : item . active } } >
26- < label class = "input-sizer" data-value = { item . name } >
25+ < a
26+ ondblclick = { ( event ) => {
27+ event . stopPropagation ( ) ;
28+ setRenamingMode ( true ) ;
29+ setFocused ( true ) ;
30+ target ( ) ?. select ( ) ;
31+ } }
32+ onClick = { ( ) => props . setActive ( index ( ) ) }
33+ class = "tab flex-shrink-0"
34+ classList = { {
35+ "tab-active" : item . active
36+ } }
37+ >
38+ < label classList = { {
39+ "cursor-pointer" : ! getRenamingMode ( )
40+ } } class = "input-sizer" data-value = { item . name } >
2741 < input
42+ classList = { {
43+ "pointer-events-none" : ! getRenamingMode ( ) ,
44+ } }
2845 ref = { setTarget }
2946 type = "text"
3047 value = { item . name }
31- readOnly = { ! getRenamingMode ( ) }
32- class = "appearance-none bg-transparent border-none focus:outline-none cursor-pointer"
33- classList = { {
34- "cursor-text" : getRenamingMode ( ) ,
35- } }
36- onClick = { ( event ) => {
37- if ( ! getRenamingMode ( ) ) {
38- props . setActive ( index ( ) ) ;
39- }
40- } }
41- onDblClick = { ( event ) => {
42- event . preventDefault ( ) ;
43- setRenamingMode ( true ) ;
44- setFocused ( true ) ;
45- target ( ) ?. select ( ) ;
46- } }
47- onBlur = { ( ) => setRenamingMode ( false ) }
48+ disabled = { ! getRenamingMode ( ) }
49+ onBlur = { ( event ) => {
50+ window . getSelection ( ) ?. removeAllRanges ( ) ; // TODO: unselectinput
51+ setRenamingMode ( false ) } }
4852 onInput = { ( event ) => {
4953 tabsStore . rename ( index ( ) , event . target . value ) ;
5054 } }
5155 onKeyDown = { ( event ) => {
5256 if ( event . key === "Enter" ) {
5357 event . preventDefault ( ) ;
54- setRenamingMode ( false ) ;
5558 setFocused ( false ) ;
5659 }
5760 } }
@@ -68,7 +71,7 @@ const Tabs: FlowComponent<Props, Component<any>> = (props) => {
6871 >
6972 < Icon path = { xMark } class = "flex-shrink-0 w-4" />
7073 </ button >
71- </ div >
74+ </ a >
7275 ) ;
7376 } }
7477 </ For >
0 commit comments