Skip to content

Commit

Permalink
Merge pull request #1048 from nextcloud/fix/user-status-types
Browse files Browse the repository at this point in the history
fix(UserStatus): only allow to set available user status types
  • Loading branch information
ShGKme authored Jan 22, 2025
2 parents d8211a1 + 206d595 commit 8ee055d
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
6 changes: 3 additions & 3 deletions src/talk/renderer/TitleBar/components/UserMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
-->

<script setup lang="ts">
import type { UserStatusStatusType } from '../../UserStatus/userStatus.types.ts'
import { computed, ref, watch } from 'vue'
import { storeToRefs } from 'pinia'
import { t } from '@nextcloud/l10n'
Expand All @@ -23,9 +24,8 @@ import UiMenuItem from './UiMenuItem.vue'
import UiMenuSeparator from './UiMenuSeparator.vue'
import UserStatusDialog from '../../UserStatus/UserStatusDialog.vue'
import { useUserStatusStore } from '../../UserStatus/userStatus.store.ts'
import { userStatusTranslations, userStatusStatusTypes } from '../../UserStatus/userStatus.utils.ts'
import { userStatusTranslations, availableUserStatusStatusTypes } from '../../UserStatus/userStatus.utils.ts'
import { appData } from '../../../../app/AppData.js'
import type { UserStatusStatusType } from '../../UserStatus/userStatus.types.ts'

const props = defineProps<{
// TODO: define a proper type for userMetadata
Expand Down Expand Up @@ -104,7 +104,7 @@ function handleUserStatusChange(status: UserStatusStatusType) {
</template>
{{ t('talk_desktop', 'Back') }}
</UiMenuItem>
<UiMenuItem v-for="status in userStatusStatusTypes"
<UiMenuItem v-for="status in availableUserStatusStatusTypes"
:key="status"
tag="button"
@click.native.stop="handleUserStatusChange(status)">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<script setup lang="ts">
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
import NcUserStatusIcon from '@nextcloud/vue/dist/Components/NcUserStatusIcon.js'
import { userStatusStatusTypes, userStatusTranslations } from '../userStatus.utils.ts'
import { availableUserStatusStatusTypes, userStatusTranslations } from '../userStatus.utils.ts'
import type { UserStatusStatusType } from '../userStatus.types.ts'

defineProps<{
Expand All @@ -20,7 +20,7 @@ const emit = defineEmits<{

<template>
<div class="user-status-form-status">
<NcButton v-for="option in userStatusStatusTypes"
<NcButton v-for="option in availableUserStatusStatusTypes"
:key="option"
type="tertiary"
alignment="start"
Expand Down
5 changes: 4 additions & 1 deletion src/talk/renderer/UserStatus/userStatus.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ import type { ClearAtPredefinedConfig, PredefinedUserStatus, UserStatus, UserSta
import moment from '@nextcloud/moment'
import { translate as t } from '@nextcloud/l10n'

export const userStatusStatusTypes: UserStatusStatusType[] = ['online', 'away', 'busy', 'dnd', 'invisible', 'offline'] as const
/**
* List of user status types that user can set
*/
export const availableUserStatusStatusTypes: UserStatusStatusType[] = ['online', 'away', 'dnd', 'invisible']

export const userStatusTranslations: Record<UserStatusStatusType, string> = {
online: t('talk_desktop', 'Online'),
Expand Down

0 comments on commit 8ee055d

Please sign in to comment.