diff --git a/src/components/tabs/WikiListTab.vue b/src/components/tabs/WikiListTab.vue
index 55619e8..b03ac6f 100644
--- a/src/components/tabs/WikiListTab.vue
+++ b/src/components/tabs/WikiListTab.vue
@@ -24,12 +24,51 @@
+
+
+
+
+
+ -
+
+
+
+ {{ vehicle.type.replace(/_/g, ' ') }}
+ {{ $t(`wiki.${vehicle.group}`) }} |
+ {{ isTractionUnit(vehicle) ? vehicle.cabinType : vehicle.constructionType }}
+ {{ vehicle.maxSpeed }}km/h | {{ (vehicle.weight / 1000).toFixed(1) }}t |
+ {{ vehicle.length }}m
+
+
+
+
-
+
@@ -161,6 +200,12 @@ export default defineComponent({
methods: {
isTractionUnit,
+ onItemSelect(vehicle: IVehicle) {
+ if (this.store.chosenVehicle?.type === vehicle.type) this.addVehicle(vehicle);
+
+ this.previewVehicle(vehicle);
+ },
+
mountObserver() {
if (this.observer) return;
@@ -168,23 +213,20 @@ export default defineComponent({
entries.forEach((entry) => {
if (entry.intersectionRatio > 0) {
entry.target
- .querySelector('td:first-child > img')!
- .setAttribute(
- 'src',
- entry.target.querySelector('td:first-child > img')!.getAttribute('data-src')!
- );
+ .querySelector('img')!
+ .setAttribute('src', entry.target.querySelector('img')!.getAttribute('data-src')!);
}
});
});
- (this.$refs['itemRefs'] as HTMLElement[]).forEach((el) => this.observer?.observe(el));
+ (this.$refs['itemRefs'] as HTMLElement[])?.forEach((el) => this.observer?.observe(el));
},
toggleFilter(name: typeof this.currentFilterMode) {
this.currentFilterMode = this.currentFilterMode == name ? 'all' : name;
- const tableWrapperRef = this.$refs['table-wrapper'] as HTMLElement;
+ const vehiclesRef = this.$refs['vehicles'] as HTMLElement;
- tableWrapperRef.scrollTo({
+ vehiclesRef.scrollTo({
top: this.scrollTop,
});
},
@@ -242,6 +284,13 @@ export default defineComponent({
computed: {
computedTableData(): IWikiRow[] {
return this.store.vehicleDataList
+ .filter(
+ (vehicle) =>
+ new RegExp(`${this.searchedVehicleTypeName.trim()}`, 'i').test(vehicle.type) &&
+ (this.currentFilterMode == 'all' ||
+ (this.currentFilterMode == 'tractions' && isTractionUnit(vehicle)) ||
+ (this.currentFilterMode == 'carriages' && !isTractionUnit(vehicle)))
+ )
.map((vehicle) => ({
vehicle,
showImage: false,
@@ -289,15 +338,43 @@ export default defineComponent({
}
.actions-panel_search {
+ display: flex;
+ gap: 0.5em;
+
input {
width: auto;
}
}
-.tab_content {
+.vehicles {
display: grid;
- grid-template-rows: 30px 770px;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 0.5em;
+ overflow: auto;
+
+ max-height: 750px;
+
+ margin-top: 0.75em;
+ padding: 0.25em;
+}
+
+.vehicles > li {
+ display: flex;
+ gap: 0.5em;
+
+ background-color: #161c2e;
+ padding: 0.5em;
+
+ min-height: 75px;
+ cursor: pointer;
+}
+
+.vehicles > li[data-preview='true'] {
+ background-color: #364165;
+}
+
+.vehicles > li > img[data-team-only='true'] {
+ border: 3px solid green;
}
.table-wrapper {
diff --git a/src/styles/global.scss b/src/styles/global.scss
index 46b806f..0162a93 100644
--- a/src/styles/global.scss
+++ b/src/styles/global.scss
@@ -214,8 +214,6 @@ input[type='number'] {
color: white;
font-size: 1em;
- width: 18em;
-
&:focus-visible {
border-color: $accentColor;
}