| | |
| | | struct AppGridItem: View { |
| | | let app: AppInfo |
| | | let iconSize: CGFloat |
| | | var showName: Bool = true |
| | | let onSelect: () -> Void |
| | | |
| | | @State private var isHovered = false |
| | |
| | | ) |
| | | .animation(.spring(response: 0.3, dampingFraction: 0.7), value: isHovered) |
| | | |
| | | Text(app.name) |
| | | .font(.system(size: 11, weight: .medium)) |
| | | .lineLimit(1) |
| | | .truncationMode(.tail) |
| | | .frame(maxWidth: iconSize + 20) |
| | | if showName { |
| | | Text(app.name) |
| | | .font(.system(size: 11, weight: .medium)) |
| | | .lineLimit(1) |
| | | .truncationMode(.tail) |
| | | .frame(maxWidth: iconSize + 20) |
| | | } |
| | | } |
| | | .padding(.vertical, 8) |
| | | .padding(.horizontal, 4) |