Meerkit
Meerkit
HomeDocsComponentsAPI
GitHub

Getting Started

5
IntroductionInstallationProject StructureThemingDeployment

CLI

6
CLI Overviewinit & setupstart, stop & openstatus, check, env & logsdbadd, test & update

Core Concepts

5
AuthenticationRoles & PermissionsData ModelLogin LockoutSecurity

Guides

3
Protect a pageAdd a roleCall your own API

Components

24

사용자 화면12

Login FormSignup FormEmail VerificationTerms AgreementGoogle LoginPassword ResetProfile & PasswordNicknameAuth DialogProfile ImageUser AvatarUser Menu

관리자 화면6

Member TableMember DirectoryMember AI UsageMember AI Usage HistoryRole ManagerRole Select

공통5

Address FieldFile DropzoneLoadingDateRoute Guards

AI Components

4
AI Prompt InputThinking IndicatorAPI Key InputVoice

API

6
OverviewHealthAuthUsers · 내 정보Users · 관리자LLM

Reference

2
Hooks & StateFAQ

Nickname

사용자용 컴포넌트서비스를 쓰는 일반 사용자가 보는 화면에 쓰입니다.

닉네임 입력, 자동 생성 버튼, 마이페이지에서의 닉네임 변경입니다.

이름과 별개로 다른 사용자에게 보여 주는 닉네임을 입력받고 바꾸는 컴포넌트입니다. 가입 폼에서는 [자동 생성] 버튼으로 이름을 받아 쓰거나 처음부터 채워 둘 수 있고, 마이페이지에서는 한 줄 편집기로 바꿀 수 있습니다. 닉네임은 선택 기능이라 기본은 꺼져 있습니다.

Turn it on

meerkit.config.ts
export default defineMeerkitConfig({
  signup: {
    optionalFields: ["nickname"],           // 켜기
    nickname: {
      generator: true,   // [자동 생성] 버튼 (기본 true)
      autoFill: false,   // 가입 폼을 열 때 닉네임을 미리 채워 둠 (기본 false)
    },
  },
});
설정기본값동작
optionalFields: ["nickname"]꺼짐가입 폼과 마이페이지에 닉네임이 나타납니다.
nickname.generatortrue입력칸 옆에 [자동 생성] 버튼을 보여 줍니다.
nickname.autoFillfalse가입 폼을 열 때 자동 생성한 닉네임을 미리 넣어 둡니다. 사용자는 그대로 쓰거나 고칠 수 있습니다.

Input with generator

[자동 생성]을 누를 때마다 새로운 닉네임이 입력칸에 들어갑니다. 직접 입력해도 됩니다.

tsx
<NicknameInput
  id="nickname"
  value={value}
  onChange={setValue}
  generator
/>

생성 규칙

  • 형용사 + 동물 + 숫자 3자리를 이어 붙입니다. 예: 용감한미어캣482, 포근한수달731.
  • 길이는 항상 2~12자 안에 들어오도록 단어를 골라 두었습니다.
  • 단어 목록은 auth/nickname.ts에 있어서 서비스 분위기에 맞게 바꿀 수 있습니다.
  • 중복은 서버가 판단합니다. 숫자가 붙어 겹칠 가능성이 낮지만, 같은 닉네임이 이미 있으면 서버가 거절하고 화면이 그 메시지를 보여 줍니다. 다시 [자동 생성]을 누르면 됩니다.

On signup

  • 가입 폼의 닉네임 칸에 [자동 생성] 버튼이 붙습니다. 비워 두어도 되는 선택 항목입니다.
  • autoFill: true이면 폼을 열 때 닉네임이 이미 채워져 있어, 사용자는 따로 고민하지 않고 가입할 수 있습니다.
  • 값이 있으면 2~12자인지 검사하고, 맞지 않으면 닉네임은 2~12자로 입력해 주세요.를 보여 줍니다.

On my page

마이페이지(/me)의 요약 카드 안에 있는 한 줄 편집기입니다. 변경을 누르면 입력칸으로 바뀝니다.

닉네임

미어캣왕

tsx
<NicknameForm
  user={user}
  onSubmit={(nickname) => updateNickname.mutateAsync(nickname)}
  pending={updateNickname.isPending}
  error={message}
/>
동작화면
[변경] 클릭현재 닉네임이 들어 있는 입력칸과 [자동 생성], [저장], [취소]로 바뀝니다.
값을 바꾸지 않음[저장]이 잠겨 있습니다.
2~12자가 아님닉네임은 2~12자로 입력해 주세요.
비우고 저장닉네임이 지워지고 이름이 다시 표시됩니다.
서버가 거절 (중복 등)편집 창이 닫히지 않고 입력한 값을 그대로 둔 채 서버의 detail 메시지를 입력칸 아래에 표시합니다. (미리보기에서 "중복"을 입력해 보세요)
저장 성공"닉네임을 저장했습니다." 토스트와 함께 화면의 이름이 즉시 바뀝니다.

Where it shows

닉네임이 있으면 이름 대신 닉네임이 보이고, 없으면 이름이 보입니다.

  • 사용자 메뉴의 버튼과 머리말, 마이페이지 제목, 관리자 멤버 표의 이름 칸
  • 아바타의 이니셜(프로필 이미지가 없을 때)
  • 내 서비스에서도 displayName(user)를 쓰면 같은 규칙으로 표시됩니다.
tsx
import { displayName } from "@/meerkit/auth/components/UserAvatar";

<p>{displayName(user)}</p>   // 닉네임이 있으면 닉네임, 없으면 이름

API

PATCH /users/me
// request (바꿀 항목만)
{ "nickname": "용감한미어캣482" }

// response 200 → 갱신된 User
// 409 { "detail": "이미 사용 중인 닉네임입니다." }
서버는 닉네임의 길이(2~12자)와 중복을 반드시 다시 검사하고, 서비스 정책에 따라 사용할 수 없는 단어(욕설 등)를 막으세요. 가입 때 보낸 닉네임도 같은 규칙으로 확인해야 합니다.

Props

NicknameInput

PropType설명
id필수string입력창 id. 라벨의 htmlFor와 연결합니다.
value필수string현재 값.
onChange필수(value: string) => void직접 입력하거나 자동 생성하면 새 값을 전달합니다.
generatorboolean[자동 생성] 버튼 표시. 기본 true.
placeholderstring안내 문구.
disabledboolean잠금.

NicknameForm

PropType설명
user필수{ nickname?: string | null }현재 닉네임을 가진 사용자.
onSubmit필수(nickname: string) => void | Promise[저장]을 누르면 새 닉네임을 전달합니다. 빈 문자열이면 지우기입니다. Promise를 돌려주면 성공했을 때만 편집 창이 닫히고, 실패하면 열어 둔 채 오류를 보여 줍니다.
pendingboolean요청 중이면 버튼을 잠급니다.
errorstring | null서버 오류 메시지.
generatorboolean[자동 생성] 버튼 표시. 기본 true.

Related API

이 컴포넌트가 호출하는 API입니다. 누르면 요청·응답 명세로 이동합니다.

PATCH/api/users/me내 정보 수정 (보낸 항목만)
Profile & PasswordAuth Dialog
© Meerkit. All rights reserved.GitHub