refactor: migrate all input fields to StyledInput (#5306)

* feat: StyledInput component

* migrate: auth pages to styledInput

* migrate: search/filter inputs

* migrate: dashboard inputs

* migrate: app frontend

* migrate: search related inputs

* migrate: all of app-frontend

* fix: missing inputs on app-frontend

* migrate: frontend

* feat: multiline

* migrate: textareas

* fix: storybook use text-primary

* fix: lint

* fix: merge conflict

* feat: cleanup
This commit is contained in:
Calum H.
2026-02-09 14:57:31 +00:00
committed by GitHub
parent 90438a1ad5
commit 37eac92329
108 changed files with 1670 additions and 1479 deletions

View File

@@ -6,6 +6,7 @@ import {
ConfirmModal,
FileInput,
injectNotificationManager,
StyledInput,
UnsavedChangesPopup,
useSavable,
} from '@modrinth/ui'
@@ -187,11 +188,10 @@ const onDeleteOrganization = useClientTry(async () => {
<label for="project-name">
<span class="label__title">Name</span>
</label>
<input
<StyledInput
id="project-name"
v-model="current.name"
maxlength="2048"
type="text"
:maxlength="2048"
:disabled="!hasPermission"
/>
@@ -200,11 +200,10 @@ const onDeleteOrganization = useClientTry(async () => {
</label>
<div class="text-input-wrapper">
<div class="text-input-wrapper__before">https://modrinth.com/organization/</div>
<input
<StyledInput
id="project-slug"
v-model="current.slug"
type="text"
maxlength="64"
:maxlength="64"
autocomplete="off"
:disabled="!hasPermission"
/>
@@ -213,14 +212,14 @@ const onDeleteOrganization = useClientTry(async () => {
<label for="project-summary">
<span class="label__title">Summary</span>
</label>
<div class="textarea-wrapper summary-input">
<textarea
id="project-summary"
v-model="current.summary"
maxlength="256"
:disabled="!hasPermission"
/>
</div>
<StyledInput
id="project-summary"
v-model="current.summary"
multiline
:maxlength="256"
:disabled="!hasPermission"
wrapper-class="summary-input"
/>
</div>
<div class="universal-card">
<div class="label">

View File

@@ -14,10 +14,9 @@
</span>
</span>
<div class="input-group">
<input
<StyledInput
id="username"
v-model="currentUsername"
type="text"
placeholder="Username"
:disabled="
!isPermission(
@@ -101,10 +100,9 @@
The title of the role that this member plays for this organization.
</span>
</label>
<input
<StyledInput
:id="`member-${member.user.id}-role`"
v-model="member.role"
type="text"
:disabled="
!isPermission(
currentMember.organization_permissions,
@@ -121,7 +119,7 @@
the organization projects' revenue goes to this member.
</span>
</label>
<input
<StyledInput
:id="`member-${member.user.id}-monetization-weight`"
v-model="member.payouts_split"
type="number"
@@ -227,7 +225,14 @@ import {
UserPlusIcon,
UserXIcon as UserRemoveIcon,
} from '@modrinth/assets'
import { Avatar, Badge, Button, Checkbox, injectNotificationManager } from '@modrinth/ui'
import {
Avatar,
Badge,
Button,
Checkbox,
injectNotificationManager,
StyledInput,
} from '@modrinth/ui'
import { ref } from 'vue'
import { removeTeamMember } from '~/helpers/teams.js'

View File

@@ -15,7 +15,7 @@
<span class="label__title">Issue tracker</span>
</label>
<div class="input-group shrink-first">
<input
<StyledInput
id="issue-tracker-input"
v-model="editLinks.issues.val"
:disabled="editLinks.issues.clear"
@@ -23,7 +23,7 @@
:placeholder="
editLinks.issues.clear ? 'Existing link will be cleared' : 'Enter a valid URL'
"
maxlength="2048"
:maxlength="2048"
/>
<button
v-tooltip="'Clear link'"
@@ -42,12 +42,12 @@
<span class="label__title">Source code</span>
</label>
<div class="input-group shrink-first">
<input
<StyledInput
id="source-code-input"
v-model="editLinks.source.val"
:disabled="editLinks.source.clear"
type="url"
maxlength="2048"
:maxlength="2048"
:placeholder="
editLinks.source.clear ? 'Existing link will be cleared' : 'Enter a valid URL'
"
@@ -69,12 +69,12 @@
<span class="label__title">Wiki page</span>
</label>
<div class="input-group shrink-first">
<input
<StyledInput
id="wiki-page-input"
v-model="editLinks.wiki.val"
:disabled="editLinks.wiki.clear"
type="url"
maxlength="2048"
:maxlength="2048"
:placeholder="
editLinks.wiki.clear ? 'Existing link will be cleared' : 'Enter a valid URL'
"
@@ -93,12 +93,12 @@
<span class="label__title">Discord invite</span>
</label>
<div class="input-group shrink-first">
<input
<StyledInput
id="discord-invite-input"
v-model="editLinks.discord.val"
:disabled="editLinks.discord.clear"
type="url"
maxlength="2048"
:maxlength="2048"
:placeholder="
editLinks.discord.clear
? 'Existing link will be cleared'
@@ -334,6 +334,7 @@ import {
injectNotificationManager,
NewModal,
ProjectStatusBadge,
StyledInput,
useVIntl,
} from '@modrinth/ui'
import { formatProjectType } from '@modrinth/utils'