itube-specs 0.0.1036 → 0.0.1039

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,11 +8,7 @@
8
8
  v-if="isWebcamsEnabled"
9
9
  class="view-models__intro"
10
10
  >
11
- <UiSectionTitle
12
- :title="h1"
13
- :count="isFiltered || letter ? data?.total : modelsTotal || data?.total"
14
- icon="user"
15
- />
11
+ <UiSectionTitle :title="h1"/>
16
12
 
17
13
  <UiSwitcher
18
14
  :items="sections"
@@ -255,10 +251,17 @@ const topCards = computed(() => {
255
251
  }
256
252
 
257
253
  .view-models__intro {
258
- display: grid;
259
- justify-items: start;
254
+ display: flex;
255
+ flex-direction: column;
256
+ align-items: flex-start;
260
257
  row-gap: 16px;
261
258
  margin-bottom: 16px;
259
+
260
+ @include from-br(sm) {
261
+ flex-flow: row wrap;
262
+ align-items: center;
263
+ column-gap: 20px;
264
+ }
262
265
  }
263
266
 
264
267
  .view-models__pagination {
@@ -16,11 +16,7 @@ query-параметрах `filter_*`. Формат провайдера при
16
16
  <div class="view-webcams _page _container">
17
17
  <header class="view-webcams__header">
18
18
  <div class="view-webcams__intro">
19
- <UiSectionTitle
20
- :title="h1"
21
- :count="data?.total"
22
- icon="webcam"
23
- />
19
+ <UiSectionTitle :title="h1"/>
24
20
 
25
21
  <UiSwitcher
26
22
  :items="sections"
@@ -304,9 +300,16 @@ watch(() => JSON.stringify(toWebcamFilterPayload(route.query)), () => {
304
300
  }
305
301
 
306
302
  .view-webcams__intro {
307
- display: grid;
308
- justify-items: start;
303
+ display: flex;
304
+ flex-direction: column;
305
+ align-items: flex-start;
309
306
  row-gap: 16px;
307
+
308
+ @include from-br(sm) {
309
+ flex-flow: row wrap;
310
+ align-items: center;
311
+ column-gap: 20px;
312
+ }
310
313
  }
311
314
 
312
315
  .view-webcams__options {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "itube-specs",
3
3
  "type": "module",
4
- "version": "0.0.1036",
4
+ "version": "0.0.1039",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "./types/index.d.ts",
7
7
  "scripts": {
@@ -0,0 +1,25 @@
1
+ <!-- Плейлист без ролика в адресе (`/playlists/{id}`, в том числе со старого `/playlist/{id}`) — 301 на первый ролик -->
2
+ <template>
3
+ <div class="_loading"/>
4
+ </template>
5
+
6
+ <script setup lang="ts">
7
+ import { PlaylistsApiService } from '../../../services/api/playlists.service';
8
+
9
+ const featureFlags = useRuntimeConfig().public.featureFlags;
10
+ const route = useRoute();
11
+ const { generateLink } = useGenerateLink();
12
+
13
+ const { data } = await useFetchPlaylistsGetVideosById(PlaylistsApiService.getVideosByPlaylist);
14
+
15
+ const first = data.value?.items?.[0];
16
+
17
+ if (!first) {
18
+ throw createError({ statusCode: 404, statusMessage: 'Not Found' });
19
+ }
20
+
21
+ await navigateTo(
22
+ generateLink(`/playlists/${String(route.params['playlistId'])}/${first[featureFlags.FetchByUrlEnabled ? 'url' : 'id']}`),
23
+ { redirectCode: 301, replace: true },
24
+ );
25
+ </script>