Skip to content

Commit

Permalink
feat(number): support disabled
Browse files Browse the repository at this point in the history
  • Loading branch information
qianmoQ committed Nov 5, 2024
1 parent baf89da commit d2f3be5
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 6 deletions.
31 changes: 31 additions & 0 deletions docs/components/number.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,36 @@ const value = ref(0)

:::

## Disabled

::: raw

<CodeRunner title="Disabled">
<div class="space-y-2">
<ShadcnNumber v-model="basicValue"/>
<ShadcnNumber v-model="basicValue" disabled />
</div>
</CodeRunner>

:::

::: details Show code

```vue
<template>
<ShadcnNumber v-model="value"/>
<ShadcnNumber v-model="value" disabled />
</template>
<script setup lang="ts">
import { ref } from 'vue';
const value = ref(0)
</script>
```

:::

## Props

<ApiTable title="Number Props"
Expand All @@ -106,6 +136,7 @@ const value = ref(0)
['modelValue', 'Number value', 'number', '-', '-'],
['size', 'Size of the number', 'string', 'default', 'small | default | large'],
['type', 'Type of the number', 'string', 'default', 'primary | warning | success | error'],
['disabled', 'Whether the number is disabled', 'boolean', 'false', '-'],
]">
</ApiTable>

Expand Down
6 changes: 2 additions & 4 deletions src/App.vue
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
<template>
<div class="p-32 space-y-2">
Value: {{ value }}
<ShadcnNumber v-model="value" size="small" type="primary"/>
<ShadcnNumber v-model="value" size="default" type="warning"/>
<ShadcnNumber v-model="value" size="large" type="success"/>
<ShadcnNumber v-model="value" size="large" type="error"/>
<ShadcnNumber v-model="value"/>
<ShadcnNumber v-model="value" disabled/>
</div>
</template>

Expand Down
10 changes: 8 additions & 2 deletions src/ui/number/ShadcnNumber.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@
<div class="relative">
<div :class="['flex items-center justify-between border rounded p-3',
Size[size],
HoverType[type]
HoverType[type],
{
'cursor-pointer': !disabled,
'cursor-not-allowed opacity-50 bg-gray-100': disabled
}
]">
<!-- Input field for direct number entry -->
<input :class="['w-full outline-none text-sm',
!validValue && 'line-through'
]"
type="text"
:value="localValue"
:disabled="disabled"
@input="onInput"
@blur="onBlur"/>
</div>
Expand All @@ -27,7 +32,8 @@ import { HoverType } from '@/ui/common/type.ts'
const emit = defineEmits<NumberEmits>()
const props = withDefaults(defineProps<NumberProps>(), {
size: 'default',
type: 'primary'
type: 'primary',
disabled: false
})
// Create a reactive reference for the modelValue
Expand Down
1 change: 1 addition & 0 deletions src/ui/number/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export interface NumberProps
name?: string
size?: keyof typeof Size
type?: keyof typeof HoverType
disabled?: boolean
}

export type NumberEmits = {
Expand Down

0 comments on commit d2f3be5

Please sign in to comment.