This commit is contained in:
pa
2026-02-05 16:59:16 +09:00
parent 1959497071
commit 2d4d6816d3
16 changed files with 92 additions and 80 deletions

View File

@@ -89,7 +89,7 @@
<ButtonGroup class="mr-2">
<TooltipWrapper :content="t('view.charts.instance_activity.previous_day')" side="top">
<Button
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="isPrevDayBtnDisabled"
@click="changeSelectedDateFromBtn(false)">
@@ -98,7 +98,7 @@
</TooltipWrapper>
<TooltipWrapper :content="t('view.charts.instance_activity.next_day')" side="top">
<Button
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="isNextDayBtnDisabled"
@click="changeSelectedDateFromBtn(true)">

View File

@@ -95,7 +95,7 @@
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<Button
class="rounded-full"
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="isFavoriteLoading"
@click.stop="handleRefreshFavorites">
@@ -203,7 +203,7 @@
<Button
class="rounded-full"
size="icon"
variant="outline"
variant="ghost"
@click.stop="refreshLocalAvatarFavorites"
><RefreshCcw
/></Button>

View File

@@ -97,7 +97,7 @@
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<Button
class="rounded-full"
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="isFavoriteLoading"
@click.stop="handleRefreshFavorites">

View File

@@ -97,7 +97,7 @@
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<Button
class="rounded-full"
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="isFavoriteLoading"
@click.stop="handleRefreshFavorites">
@@ -204,7 +204,7 @@
<Button
class="rounded-full"
size="icon-sm"
variant="outline"
variant="ghost"
v-if="!refreshingLocalFavorites"
@click.stop="refreshLocalWorldFavorites"
><RefreshCcw

View File

@@ -16,24 +16,18 @@
</span>
</TooltipWrapper>
</div>
<Select
multiple
<ToggleGroup
type="multiple"
variant="outline"
size="sm"
:model-value="Array.isArray(feedTable.filter) ? feedTable.filter : []"
@update:modelValue="handleFeedFilterChange">
<SelectTrigger class="w-full" style="flex: 1">
<SelectValue :placeholder="t('view.feed.filter_placeholder')" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectItem
v-for="type in ['GPS', 'Online', 'Offline', 'Status', 'Avatar', 'Bio']"
:key="type"
:value="type">
{{ t('view.feed.filters.' + type) }}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
@update:model-value="handleFeedFilterChange"
class="w-full justify-start"
style="flex: 1">
<ToggleGroupItem v-for="type in feedFilterTypes" :key="type" :value="type">
{{ t('view.feed.filters.' + type) }}
</ToggleGroupItem>
</ToggleGroup>
<InputGroupField
v-model="feedTable.search"
:placeholder="t('view.feed.search_placeholder')"
@@ -52,15 +46,8 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue
} from '../../components/ui/select';
import { useAppearanceSettingsStore, useFeedStore, useVrcxStore } from '../../stores';
import { ToggleGroup, ToggleGroupItem } from '../../components/ui/toggle-group';
import { DataTableLayout } from '../../components/ui/data-table';
import { InputGroupField } from '../../components/ui/input-group';
import { Switch } from '../../components/ui/switch';
@@ -74,6 +61,7 @@
const vrcxStore = useVrcxStore();
const { t } = useI18n();
const feedFilterTypes = ['GPS', 'Online', 'Offline', 'Status', 'Avatar', 'Bio'];
const feedRef = ref(null);
@@ -121,7 +109,8 @@
};
function handleFeedFilterChange(value) {
feedTable.value.filter = Array.isArray(value) ? value : [];
const selected = Array.isArray(value) ? value : [];
feedTable.value.filter = selected.length === feedFilterTypes.length ? [] : selected;
feedTableLookup();
}

View File

@@ -150,11 +150,11 @@
storeToRefs(friendStore);
const SEGMENTED_BASE_OPTIONS = [
{ label: t('side_panel.online'), value: 'online' },
{ label: t('side_panel.favorite'), value: 'favorite' },
{ label: t('side_panel.same_instance'), value: 'same-instance' },
{ label: t('side_panel.active'), value: 'active' },
{ label: t('side_panel.offline'), value: 'offline' }
{ label: t('view.friends_locations.online'), value: 'online' },
{ label: t('view.friends_locations.favorite'), value: 'favorite' },
{ label: t('view.friends_locations.same_instance'), value: 'same-instance' },
{ label: t('view.friends_locations.active'), value: 'active' },
{ label: t('view.friends_locations.offline'), value: 'offline' }
];
const segmentedOptions = computed(() =>

View File

@@ -164,7 +164,7 @@
<TooltipWrapper side="bottom" :content="t('view.search.avatar.refresh_tooltip')">
<Button
class="rounded-full ml-1"
variant="outline"
variant="ghost"
size="icon-sm"
:disabled="userDialog.isAvatarsLoading"
@click="refreshUserDialogAvatars">
@@ -227,26 +227,29 @@
</RadioGroup>
</div>
</div>
<div style="display: flex; justify-content: end">
<RadioGroup
<div style="display: flex; justify-content: end" class="mt-2">
<Select
:model-value="searchAvatarSort"
:disabled="searchAvatarFilterRemote !== 'local'"
class="flex items-center gap-4"
style="margin: 5px"
@update:modelValue="handleSearchAvatarSortChange">
<div class="flex items-center space-x-2">
<RadioGroupItem id="searchAvatarSort-name" value="name" />
<label for="searchAvatarSort-name">{{ t('view.search.avatar.sort_name') }}</label>
</div>
<div class="flex items-center space-x-2">
<RadioGroupItem id="searchAvatarSort-update" value="update" />
<label for="searchAvatarSort-update">{{ t('view.search.avatar.sort_update') }}</label>
</div>
<div class="flex items-center space-x-2">
<RadioGroupItem id="searchAvatarSort-created" value="created" />
<label for="searchAvatarSort-created">{{ t('view.search.avatar.sort_created') }}</label>
</div>
</RadioGroup>
<SelectTrigger size="sm">
<SelectValue :placeholder="t('view.search.avatar.sort_name')" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectItem value="name">
{{ t('view.search.avatar.sort_name') }}
</SelectItem>
<SelectItem value="update">
{{ t('view.search.avatar.sort_update') }}
</SelectItem>
<SelectItem value="created">
{{ t('view.search.avatar.sort_created') }}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</div>
<div class="x-friend-list" style="margin-top: 20px; min-height: 500px">
<div