Skip to content

Commit 8430d4c

Browse files
Updating fonts
1 parent 2e192d1 commit 8430d4c

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

src/plugin/composables/classes.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,11 @@ export const useHeaderCellClasses: UseHeaderCellClasses = (options) => {
105105

106106
// ------------------------- Header Sort Icon //
107107
export const useSortIconClasses: UseSortIconClasses = (options) => {
108-
const { key, level, sortBy } = options;
108+
const { iconOptions, key, level, sortBy } = options;
109109

110110
return {
111-
'px-1': true,
111+
'fa-fw': iconOptions?.defaultSet === 'fa',
112+
'mx-1': true,
112113
[`${componentName}--header-row-th-sortable-sort-icon`]: true,
113114
[`${componentName}--header-row-th-sortable-sort-icon-${level}`]: true,
114115
[`${componentName}--header-row-th-sortable-sort-icon-desc`]: useGetSortDirection(sortBy, key) === 'desc',

src/plugin/slots/HeadersSlot.vue

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@
5858
<v-icon
5959
v-else-if="column.sortable"
6060
:class="sortIconClasses(column.key as keyof Column)"
61+
:icon="sortAscIcon"
62+
:size="iconSize"
6163
>
62-
mdi mdi-arrow-up
6364
</v-icon>
6465
</div>
6566
</th>
@@ -74,6 +75,7 @@ import {
7475
HeaderSlotProps,
7576
InternalDataTableHeader,
7677
} from '@/types';
78+
import type { IconOptions } from 'vuetify';
7779
import {
7880
useCellAlignClasses,
7981
useHeaderCellClasses,
@@ -95,6 +97,7 @@ const props = withDefaults(defineProps<HeaderSlotProps>(), {
9597
showSelect: false,
9698
});
9799
100+
const iconOptions = inject<IconOptions>(Symbol.for('vuetify:icons'));
98101
const theme = useTheme();
99102
const isAllSelected = ref<boolean>(props.slotProps.allRowsSelected);
100103
@@ -103,6 +106,10 @@ const columns = computed<Column[]>(() => props.slotProps.columns);
103106
const someSelected = computed(() => props.slotProps.someSelected);
104107
const isIndeterminate = computed(() => someSelected.value && !props.slotProps.allRowsSelected);
105108
109+
// TODO: This may change if pull request is accepted //
110+
// ? https://github.com/vuetifyjs/vuetify/pull/17598 //
111+
const sortAscIcon = ref('$sortAsc');
112+
106113
107114
// -------------------------------------------------- Header Row //
108115
const headerRowClasses = computed<object>(() => {
@@ -159,6 +166,7 @@ const checkBoxClasses = computed<object>(() => {
159166
// -------------------------------------------------- Sorting //
160167
const sortIconClasses = (key: string): object => {
161168
return useSortIconClasses({
169+
iconOptions,
162170
key,
163171
level: props.level,
164172
sortBy: props.sortBy,
@@ -172,6 +180,18 @@ function sortColumn(column: InternalDataTableHeader): void {
172180
}
173181
174182
183+
// -------------------------------------------------- Icons //
184+
const iconSize = computed(() => {
185+
if (iconOptions?.defaultSet === 'fa') {
186+
sortAscIcon.value = 'fas fa-arrow-up';
187+
return 'small';
188+
}
189+
190+
sortAscIcon.value = '$sortAsc';
191+
return 'default';
192+
});
193+
194+
175195
// -------------------------------------------------- Render //
176196
function renderCell(column: Column): unknown {
177197
return useRenderCell(column);
@@ -214,6 +234,10 @@ $hover: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
214234
&-desc {
215235
transform: rotate(180deg);
216236
}
237+
238+
// &-fa {
239+
// font-size: 1rem;
240+
// }
217241
}
218242
219243
&:hover {

src/plugin/slots/ItemSlot.vue

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,11 @@
7575
v-if="$slots[`item.data-table-expand`]"
7676
name="item.data-table-expand"
7777
/>
78-
<v-icon v-else>
79-
mdi-chevron-down
80-
</v-icon>
78+
<v-icon
79+
v-else
80+
icon="$expand"
81+
:size="expandIconSize"
82+
/>
8183
</div>
8284
</td>
8385
<!-- Render Cell Item -->
@@ -106,6 +108,7 @@ import {
106108
useBodyRowClasses,
107109
useCellClasses,
108110
} from '@/plugin/composables/classes';
111+
import type { IconOptions } from 'vuetify';
109112
110113
111114
const slots = defineSlots();
@@ -117,6 +120,8 @@ const emit = defineEmits([
117120
118121
const props = withDefaults(defineProps<ItemSlotProps>(), {});
119122
123+
const vuetifyIcons = inject<IconOptions>(Symbol.for('vuetify:icons'));
124+
120125
const columns = computed<Column[]>(() => props.slotProps.columns);
121126
const index = computed(() => props.slotProps.index);
122127
const isExpanded = computed(() => props.slotProps.isExpanded);
@@ -188,6 +193,16 @@ function emitClickRowCheckbox(data: ClickRowCheckboxEvent): void {
188193
}
189194
190195
196+
// -------------------------------------------------- Icons //
197+
const expandIconSize = computed(() => {
198+
if (vuetifyIcons?.defaultSet === 'fa') {
199+
return 'x-small';
200+
}
201+
202+
return 'default';
203+
});
204+
205+
191206
// -------------------------------------------------- Render //
192207
function renderCellItem(item: DataTableItem, column: Column): unknown {
193208
return useRenderCellItem(item.raw as DataTableItem['raw'], column);

0 commit comments

Comments
 (0)