@@ -301,6 +301,7 @@ const sortBy = ref<'score' | 'pickrate' | 'tier'>('score')
301301const sortOrder = ref <' asc' | ' desc' >(' desc' )
302302const searchType = ref <' name' | ' easy' | ' hard' >(' name' )
303303const searchQuery = ref (' ' )
304+ const selectedTierFilter = ref <string | ' all' >(' all' )
304305
305306const sortedAndFilteredChampions = computed (() => {
306307 const roleData = tierData .value [selectedRole .value ] as ChampionData []
@@ -340,6 +341,12 @@ const sortedAndFilteredChampions = computed(() => {
340341 filtered = filtered .filter (champion => ! champion ?.otp )
341342 }
342343
344+ if (selectedTierFilter .value !== ' all' ) {
345+ filtered = filtered .filter (
346+ champion => champion ?.tier === selectedTierFilter .value ,
347+ )
348+ }
349+
343350 if (searchQuery .value ) {
344351 const query = searchQuery .value .toLowerCase ()
345352 filtered = filtered .filter (champion => {
@@ -391,10 +398,10 @@ const sortedAndFilteredChampions = computed(() => {
391398 >
392399 {{
393400 type === 'normal'
394- ? 'TIER-LISTE'
401+ ? $t('statistique.tier-list')
395402 : type === 'bronze'
396- ? 'BRONZE-LISTE'
397- : 'PRO-LISTE'
403+ ? $t('statistique.bronze-list')
404+ : $t('statistique.pro-list')
398405 }}
399406 </button >
400407 </div >
@@ -406,7 +413,9 @@ const sortedAndFilteredChampions = computed(() => {
406413 :class =" { active: displayMode === mode }"
407414 @click =" displayMode = mode as 'graph' | 'list'"
408415 >
409- {{ mode === 'graph' ? 'GRAPHIQUE' : 'LISTE' }}
416+ {{
417+ mode === 'graph' ? $t('statistique.graph') : $t('statistique.list')
418+ }}
410419 </button >
411420 </div >
412421
@@ -427,9 +436,9 @@ const sortedAndFilteredChampions = computed(() => {
427436 {{ role.replace('LANE', '').replace('-BOT', '') }}
428437 </button >
429438 <select v-model =" filterType" class =" filter-select" >
430- <option value =" all" >Tous </option >
431- <option value =" otp" >OTP </option >
432- <option value =" no-otp" >Sans OTP </option >
439+ <option value =" all" >{{ $t('statistique.all') }} </option >
440+ <option value =" otp" >{{ $t('statistique.otp') }} </option >
441+ <option value =" no-otp" >{{ $t('statistique.no-otp') }} </option >
433442 </select >
434443 </div >
435444
@@ -475,20 +484,31 @@ const sortedAndFilteredChampions = computed(() => {
475484 <input
476485 v-model =" searchQuery"
477486 type =" text"
478- placeholder =" Rechercher... "
487+ : placeholder =" $t('statistique.search') "
479488 class =" search-input"
480489 />
481490 <select v-model =" searchType" class =" search-type" >
482- <option value =" name" >Nom</option >
483- <option value =" easy" >Matchup Facile</option >
484- <option value =" hard" >Matchup Difficile</option >
491+ <option value =" name" >{{ $t('statistique.search-name') }}</option >
492+ <option value =" easy" >{{ $t('statistique.search-easy') }}</option >
493+ <option value =" hard" >{{ $t('statistique.search-hard') }}</option >
494+ </select >
495+ </div >
496+ <div class =" filter-controls" >
497+ <select v-model =" selectedTierFilter" class =" tier-filter" >
498+ <option value =" all" >{{ $t('statistique.all-tiers') }}</option >
499+ <option value =" S+" >S+</option >
500+ <option value =" S" >S</option >
501+ <option value =" A" >A</option >
502+ <option value =" B" >B</option >
503+ <option value =" C" >C</option >
504+ <option value =" F" >F</option >
485505 </select >
486506 </div >
487507 <div class =" sort-controls" >
488508 <select v-model =" sortBy" class =" sort-select" >
489- <option value =" tier" >Tier </option >
490- <option value =" score" >Score CP </option >
491- <option value =" pickrate" >Pickrate </option >
509+ <option value =" tier" >{{ $t('statistique.tier') }} </option >
510+ <option value =" score" >{{ $t('statistique.score') }} </option >
511+ <option value =" pickrate" >{{ $t('statistique.pickrate') }} </option >
492512 </select >
493513 <button
494514 class =" sort-order"
@@ -583,15 +603,15 @@ const sortedAndFilteredChampions = computed(() => {
583603 color: TIER_COLORS[selectedTier as keyof typeof TIER_COLORS],
584604 }"
585605 >
586- Score : {{ champion.score }}
606+ {{ $t('statistique.score') }} : {{ champion.score }}
587607 </span >
588608 <span
589609 class =" champion-score"
590610 :style =" {
591611 color: TIER_COLORS[selectedTier as keyof typeof TIER_COLORS],
592612 }"
593613 >
594- Pickrate : {{ champion.pickrate }}%
614+ {{ $t('statistique.pickrate') }} : {{ champion.pickrate }}%
595615 </span >
596616 </div >
597617 </div >
@@ -781,7 +801,8 @@ const sortedAndFilteredChampions = computed(() => {
781801}
782802
783803.search-type ,
784- .sort-select {
804+ .sort-select ,
805+ .tier-filter {
785806 background : transparent ;
786807 border : var (--border-size ) solid var (--color-gold-300 );
787808 color : var (--color-gold-300 );
@@ -791,6 +812,12 @@ const sortedAndFilteredChampions = computed(() => {
791812 font-family : var (--font-beaufort );
792813}
793814
815+ .filter-controls {
816+ display : flex ;
817+ gap : 0.5rem ;
818+ align-items : center ;
819+ }
820+
794821.sort-controls {
795822 display : flex ;
796823 gap : 0.5rem ;
@@ -817,6 +844,7 @@ const sortedAndFilteredChampions = computed(() => {
817844 }
818845
819846 .search-controls ,
847+ .filter-controls ,
820848 .sort-controls {
821849 width : 100% ;
822850 }
0 commit comments