@@ -58,11 +58,6 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
5858 private let titleMaskLayer = CAGradientLayer ( )
5959 private let closeOverlay = TabStripCloseOverlayView ( )
6060
61- private enum LayoutMode {
62- case home
63- case standard
64- }
65-
6661 override init ( nibName _: NSNib . Name ? , bundle _: Bundle ? ) {
6762 super. init ( nibName: nil , bundle: nil )
6863 setupViews ( )
@@ -172,6 +167,7 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
172167 ) ,
173168 iconWidthConstraint,
174169 iconHeightConstraint,
170+ iconCenterXForHome,
175171
176172 titleLeadingConstraint,
177173 titleLabel. centerYAnchor. constraint (
@@ -190,8 +186,6 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
190186 closeOverlay. setContentHuggingPriority ( . required, for: . horizontal)
191187 titleLabel. setContentCompressionResistancePriority ( . defaultHigh, for: . horizontal)
192188 titleLabel. setContentHuggingPriority ( . defaultLow, for: . horizontal)
193-
194- applyLayoutMode ( . standard)
195189 }
196190
197191 func configure(
@@ -214,9 +208,10 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
214208
215209 titleLeadingConstraint. constant = isHome ? 0 : Style . iconTrailingPadding * paddingScale
216210 iconLeadingConstraint. constant = Style . iconLeadingPadding * paddingScale
211+ iconCenterXForHome. isActive = isHome
212+ iconLeadingConstraint. isActive = !isHome
217213
218214 if isHome {
219- applyLayoutMode ( . home)
220215 iconWidthConstraint. constant = Style . homeIconPointSize
221216 iconHeightConstraint. constant = Style . homeIconPointSize
222217 iconImageView. layer? . cornerRadius = 0
@@ -234,10 +229,13 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
234229 iconImageView. contentTintColor = Style . homeIconTintColor
235230 titleLabel. stringValue = " "
236231 titleLabel. isHidden = true
232+ titleLeadingConstraint. isActive = false
233+ titleTrailingConstraint. isActive = false
234+ iconLeadingConstraint. isActive = false
235+ iconCenterXForHome. isActive = true
237236 closeOverlay. isHidden = true
238237 titleLabel. layer? . mask = nil
239238 } else {
240- applyLayoutMode ( . standard)
241239 iconWidthConstraint. constant = iconSize
242240 iconHeightConstraint. constant = iconSize
243241 iconImageView. layer? . cornerRadius = iconSize / 3
@@ -249,6 +247,10 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
249247 iconImageView. contentTintColor = nil
250248 titleLabel. stringValue = item. title
251249 titleLabel. isHidden = false
250+ titleLeadingConstraint. isActive = true
251+ titleTrailingConstraint. isActive = true
252+ iconLeadingConstraint. isActive = true
253+ iconCenterXForHome. isActive = false
252254 titleTrailingConstraint. constant = - Style. trailingInsetDefault
253255 closeOverlay. isHidden = false
254256 titleLabel. layer? . mask = titleMaskLayer
@@ -351,32 +353,13 @@ final class TabStripCollectionViewItem: NSCollectionViewItem, TabStripItemHoverD
351353 tabView. isClosable = true
352354 }
353355 titleLabel. layer? . mask = titleMaskLayer
356+ titleLeadingConstraint. isActive = true
357+ titleTrailingConstraint. isActive = true
358+ iconLeadingConstraint. isActive = true
359+ iconCenterXForHome. isActive = false
354360 updateAppearance ( animated: false )
355361 }
356362
357- private func applyLayoutMode( _ mode: LayoutMode ) {
358- switch mode {
359- case . home:
360- NSLayoutConstraint . deactivate ( [
361- iconLeadingConstraint,
362- titleLeadingConstraint,
363- titleTrailingConstraint,
364- ] )
365- NSLayoutConstraint . activate ( [
366- iconCenterXForHome,
367- ] )
368- case . standard:
369- NSLayoutConstraint . deactivate ( [
370- iconCenterXForHome,
371- ] )
372- NSLayoutConstraint . activate ( [
373- iconLeadingConstraint,
374- titleLeadingConstraint,
375- titleTrailingConstraint,
376- ] )
377- }
378- }
379-
380363 func tabHoverDidChange( isHovered: Bool ) {
381364 self . isHovered = isHovered
382365 updateAppearance ( )
0 commit comments