File tree Expand file tree Collapse file tree 3 files changed +12
-2
lines changed
packages/kit-headless/src/components/tabs Expand file tree Collapse file tree 3 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 9
9
useVisibleTask$ ,
10
10
QwikIntrinsicElements ,
11
11
type QwikMouseEvent ,
12
+ useComputed$ ,
12
13
} from '@builder.io/qwik' ;
13
14
import { tabsContextId } from './tabs-context-id' ;
14
15
import { KeyCode } from '../../utils/key-code.type' ;
@@ -39,6 +40,10 @@ export const Tab = component$((props: TabProps) => {
39
40
const elementRefSig = useSignal < HTMLElement | undefined > ( ) ;
40
41
const uniqueTabId = useId ( ) ;
41
42
43
+ const selectedClassNameSig = useComputed$ ( ( ) => {
44
+ return props . selectedClassName || contextService . selectedClassName ;
45
+ } ) ;
46
+
42
47
useTask$ ( async function indexInitTask ( { cleanup } ) {
43
48
if ( isServer ) {
44
49
serverAssignedIndexSig . value =
@@ -112,14 +117,17 @@ export const Tab = component$((props: TabProps) => {
112
117
tabIndex = { isSelectedSig . value ? 0 : - 1 }
113
118
aria-controls = { 'tabpanel-' + matchedTabPanelIdSig . value }
114
119
class = { `${
115
- isSelectedSig . value ? `selected ${ props . selectedClassName || '' } ` : ''
120
+ isSelectedSig . value
121
+ ? `selected ${ selectedClassNameSig . value || '' } `
122
+ : ''
116
123
} ${ props . class ? ` ${ props . class } ` : '' } `}
117
124
onClick$ = { ( event ) => {
118
125
contextService . selectTab$ ( uniqueTabId ) ;
119
126
if ( props . onClick$ ) {
120
127
props . onClick$ ( event ) ;
121
128
}
122
129
} }
130
+ style = { props . style }
123
131
>
124
132
< Slot />
125
133
</ button >
Original file line number Diff line number Diff line change 1
1
import { QRL } from '@builder.io/qwik' ;
2
- import { Behavior } from './behavior.type' ;
3
2
import { TabInfo } from './tabs' ;
4
3
import { KeyCode } from '../../utils/key-code.type' ;
5
4
@@ -16,4 +15,5 @@ export interface TabsContext {
16
15
isTabSelected$ : QRL < ( tabId : string ) => boolean > ;
17
16
isPanelSelected$ : QRL < ( panelId : string ) => boolean > ;
18
17
selectIfAutomatic$ : QRL < ( tabId : string ) => void > ;
18
+ selectedClassName ?: string ;
19
19
}
Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ export type TabsProps = {
46
46
behavior ?: Behavior ;
47
47
selectedIndex ?: number ;
48
48
vertical ?: boolean ;
49
+ selectedClassName ?: string ;
49
50
onSelectedIndexChange$ ?: ( index : number ) => void ;
50
51
} & QwikIntrinsicElements [ 'div' ] ;
51
52
@@ -214,6 +215,7 @@ export const Tabs = component$((props: TabsProps) => {
214
215
reIndexTabs$,
215
216
onTabKeyDown$,
216
217
selectIfAutomatic$,
218
+ selectedClassName : props . selectedClassName
217
219
} ;
218
220
219
221
useContextProvider ( tabsContextId , contextService ) ;
You can’t perform that action at this time.
0 commit comments