Skip to content

feat: 응답 변수명 수정#47

Merged
dasosann merged 1 commit intomainfrom
feat/mainpage-api
Mar 16, 2026
Merged

feat: 응답 변수명 수정#47
dasosann merged 1 commit intomainfrom
feat/mainpage-api

Conversation

@dasosann
Copy link
Copy Markdown
Contributor

No description provided.

@dasosann dasosann merged commit 8657318 into main Mar 16, 2026
2 checks passed
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 백엔드 API 스펙 변경에 따라 프로필 관련 응답 변수명과 데이터 구조를 업데이트하는 것을 목표로 합니다. favoriteSongsong으로, advantagestags (객체 배열 형태)로, profileImageUrlprofileImageKey로 변경하여 데이터 일관성을 확보하고, 관련 UI 컴포넌트와 데이터 처리 로직을 수정했습니다. 또한, 기본 프로필 이미지 목록을 개선했습니다.

Highlights

  • 응답 변수명 변경: favoriteSong 필드명이 song으로, advantages 필드명이 tags로 변경되었습니다. profileImageUrl 필드명은 profileImageKey로 변경되었습니다.
  • 데이터 구조 변경: advantages는 기존의 string[]에서 { tag: string }[] 형태로 변경되어 태그 데이터를 더 구조적으로 관리합니다.
  • UI 및 데이터 매핑 업데이트: 변경된 변수명과 데이터 구조에 맞춰 프로필 상세 화면, 메인 페이지 프로필 카드, 회원가입 제출 로직 등 여러 UI 컴포넌트와 데이터 매핑 로직이 업데이트되었습니다.
  • 기본 프로필 이미지 목록 업데이트: 기본 프로필 이미지 목록이 재정렬되고 새로운 이미지가 추가되었습니다.
Changelog
  • app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx
    • 프로필 데이터의 favoriteSongsong으로, advantagestags로 변경된 스펙에 맞춰 상태 변수 및 초기값을 업데이트했습니다.
    • 프로필 제출 시 advantagestags 객체 배열로 변환하고, 태그에서 이모지와 공백을 제거하는 로직을 추가했습니다.
    • 프로필 초기화 시 advantagesfavoriteSong 필드를 tagssong으로 업데이트했습니다.
  • app/main/_components/ProfileCard.tsx
    • 프로필 카드에서 장점(advantages)을 tags로, 좋아하는 노래(favoriteSong)를 song으로 표시하도록 UI 렌더링 로직을 수정했습니다.
  • app/main/_components/ScreenMainPage.tsx
    • 메인 페이지에서 historyDataProfileData로 매핑할 때 profileImageKey, tags, song 필드를 사용하도록 업데이트했습니다.
  • app/profile-image/_components/DefaultProfileDrawer.tsx
    • 기본 프로필 이미지 목록(DEFAULT_PROFILES)의 순서를 변경하고, 새로운 프로필 이미지(공룡, 수달, 늑대, 뱀, 말, 개구리)를 추가했습니다.
  • app/profile-image/_components/TermsDrawer.tsx
    • 회원가입 제출 데이터(ProfileSubmitData)에서 profileImageUrlprofileImageKey로, advantagestags로, favoriteSongsong으로 변경된 스펙에 맞춰 업데이트했습니다.
    • socialTypesocialAccountId가 모두 있을 때만 값을 설정하도록 로직을 수정했습니다.
    • university의 기본값을 빈 문자열로 변경했습니다.
  • hooks/useMatchingHistory.ts
    • MatchingPartner 인터페이스에서 profileImageUrlprofileImageKey로, advantagestags (객체 배열)로, favoriteSongsong으로 변경했습니다.
  • lib/types/profile.ts
    • ProfileDataProfileSubmitData 인터페이스에서 advantagestags (객체 배열)로, favoriteSongsong으로 변경했습니다.
    • ProfileSubmitData 인터페이스에서 profileImageUrlprofileImageKey로 변경했습니다.
Activity
  • 이 PR에는 아직 활동이 없습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

API 응답 변수명 및 데이터 구조 통일

✨ Enhancement

Grey Divider

Walkthroughs

Description
• API 응답 변수명 통일 (profileImageUrlprofileImageKey, advantagestags, favoriteSongsong)
• 태그 데이터 구조 변경 (배열 → 객체 배열로 변환)
• 이모지 제거 로직 추가 및 데이터 변환 로직 개선
• 기본 프로필 이미지 목록 순서 및 항목 업데이트
Diagram
flowchart LR
  A["API 응답 변수명 변경"] --> B["타입 정의 업데이트"]
  A --> C["컴포넌트 로직 수정"]
  D["데이터 구조 변경<br/>string[] → object[]"] --> E["변환 로직 추가"]
  E --> F["이모지 제거 처리"]
  G["기본 프로필 목록 변경"] --> H["순서 및 항목 업데이트"]
Loading

Grey Divider

File Changes

1. hooks/useMatchingHistory.ts ✨ Enhancement +3/-3

매칭 히스토리 인터페이스 변수명 통일

profileImageUrlprofileImageKey 변수명 변경
• advantagestags 변수명 변경 및 타입을 { tag: string }[]로 수정
• favoriteSongsong 변수명 변경

hooks/useMatchingHistory.ts


2. lib/types/profile.ts ✨ Enhancement +6/-6

프로필 타입 정의 변수명 및 구조 통일

ProfileData 인터페이스에서 advantagestags, favoriteSongsong 변경
• ProfileSubmitData 인터페이스에서 profileImageUrlprofileImageKey 변경
• 태그 타입을 { tag: string }[]로 변경
• 주석 업데이트 (변경된 스펙 반영)

lib/types/profile.ts


3. app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx ✨ Enhancement +19/-6

추가정보 입력 컴포넌트 변수명 및 데이터 변환 로직 수정

favoriteSongsong 상태 변수 변경
• advantages 상태를 profile.tags에서 매핑하도록 수정
• 태그 제출 시 이모지 제거 정규식 추가 및 공백 제거 처리
• handleNext 함수에서 데이터 구조 변환 로직 업데이트

app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx


View more (4)
4. app/main/_components/ProfileCard.tsx ✨ Enhancement +3/-3

프로필 카드 컴포넌트 변수명 업데이트

profile.advantagesprofile.tags 참조 변경
• 태그 렌더링 시 t.tag 속성으로 접근하도록 수정
• profile.favoriteSongprofile.song 참조 변경

app/main/_components/ProfileCard.tsx


5. app/main/_components/ScreenMainPage.tsx ✨ Enhancement +4/-3

메인 페이지 데이터 변환 로직 업데이트

• 매칭 히스토리 데이터 변환 시 profileImageKeyprofileImageUrl 매핑 추가
• partner.advantagespartner.tags 변수명 변경
• partner.favoriteSongpartner.song 변수명 변경
• 주석 업데이트 (필드명 변경 사항 명시)

app/main/_components/ScreenMainPage.tsx


6. app/profile-image/_components/DefaultProfileDrawer.tsx ⚙️ Configuration changes +8/-5

기본 프로필 이미지 목록 항목 및 순서 변경

• 기본 프로필 목록 순서 변경 (강아지 → 고양이 → 곰)
• 기존 항목 제거 (판다, 햄스터, 사슴)
• 새로운 항목 추가 (공룡, 수달, 늑대, 뱀, 말, 개구리)

app/profile-image/_components/DefaultProfileDrawer.tsx


7. app/profile-image/_components/TermsDrawer.tsx ✨ Enhancement +13/-10

회원가입 제출 데이터 변수명 및 검증 로직 개선

profileImageUrlprofileImageKey 변수명 변경
• 프로필 이미지 기본값을 "default"로 설정
• 소셜 계정 검증 로직 추가 (둘 다 존재할 때만 전송)
• advantagestags 변수명 변경
• favoriteSongsong 변수명 변경
• 대학교 기본값 제거 (빈 문자열로 변경)

app/profile-image/_components/TermsDrawer.tsx


Grey Divider

Qodo Logo


✨ Describe tool usage guide:

Overview:
The describe tool scans the PR code changes, and generates a description for the PR - title, type, summary, walkthrough and labels. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

When commenting, to edit configurations related to the describe tool (pr_description section), use the following template:

/describe --pr_description.some_config1=... --pr_description.some_config2=...

With a configuration file, use the following template:

[pr_description]
some_config1=...
some_config2=...
Enabling\disabling automation
  • When you first install the app, the default mode for the describe tool is:
pr_commands = ["/describe", ...]

meaning the describe tool will run automatically on every PR.

  • Markers are an alternative way to control the generated description, to give maximal control to the user. If you set:
pr_commands = ["/describe --pr_description.use_description_markers=true", ...]

the tool will replace every marker of the form pr_agent:marker_name in the PR description with the relevant content, where marker_name is one of the following:

  • type: the PR type.
  • summary: the PR summary.
  • walkthrough: the PR walkthrough.
  • diagram: the PR sequence diagram (if enabled).

Note that when markers are enabled, if the original PR description does not contain any markers, the tool will not alter the description at all.

Custom labels

The default labels of the describe tool are quite generic: [Bug fix, Tests, Enhancement, Documentation, Other].

If you specify custom labels in the repo's labels page or via configuration file, you can get tailored labels for your use cases.
Examples for custom labels:

  • Main topic:performance - pr_agent:The main topic of this PR is performance
  • New endpoint - pr_agent:A new endpoint was added in this PR
  • SQL query - pr_agent:A new SQL query was added in this PR
  • Dockerfile changes - pr_agent:The PR contains changes in the Dockerfile
  • ...

The list above is eclectic, and aims to give an idea of different possibilities. Define custom labels that are relevant for your repo and use cases.
Note that Labels are not mutually exclusive, so you can add multiple label categories.
Make sure to provide proper title, and a detailed and well-phrased description for each label, so the tool will know when to suggest it.

Inline File Walkthrough 💎

For enhanced user experience, the describe tool can add file summaries directly to the "Files changed" tab in the PR page.
This will enable you to quickly understand the changes in each file, while reviewing the code changes (diffs).

To enable inline file summary, set pr_description.inline_file_summary in the configuration file, possible values are:

  • 'table': File changes walkthrough table will be displayed on the top of the "Files changed" tab, in addition to the "Conversation" tab.
  • true: A collapsable file comment with changes title and a changes summary for each file in the PR.
  • false (default): File changes walkthrough will be added only to the "Conversation" tab.
Utilizing extra instructions

The describe tool can be configured with extra instructions, to guide the model to a feedback tailored to the needs of your project.

Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Notice that the general structure of the description is fixed, and cannot be changed. Extra instructions can change the content or style of each sub-section of the PR description.

Examples for extra instructions:

[pr_description]
extra_instructions="""- The PR title should be in the format: '<PR type>: <title>'
- The title should be short and concise (up to 10 words)
- ...
"""

Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

More PR-Agent commands

To invoke the PR-Agent, add a comment using one of the following commands:

  • /review: Request a review of your Pull Request.
  • /describe: Update the PR title and description based on the contents of the PR.
  • /improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
  • /ask <QUESTION>: Ask a question about the PR.
  • /update_changelog: Update the changelog based on the PR's contents.
  • /help_docs <QUESTION>: Given a path to documentation (either for this repository or for a given one), ask a question.
  • /add_docs 💎: Generate docstring for new components introduced in the PR.
  • /generate_labels 💎: Generate labels for the PR based on the PR's contents.
  • /analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

See the tools guide for more details.
To list the possible configuration parameters, add a /config comment.

See the describe usage page for a comprehensive guide on using this tool.

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review bot commented Mar 16, 2026

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Image key passed to Image 🐞 Bug ✓ Correctness
Description
ScreenMainPage assigns partner.profileImageKey into profileImageUrl, but ProfileCard passes
profileImageUrl directly to next/image as src. Since profileImageKey is an object key (e.g.
"default_bear" / S3 key) rather than a URL/path starting with "/" or "http", next/image will error
or render broken images on the main page.
Code

app/main/_components/ScreenMainPage.tsx[52]

+      profileImageUrl: partner.profileImageKey,
Evidence
The matching history API exposes a profileImageKey (not a URL), and the signup flow also
produces/uses an imageKey. This PR maps that key into profileImageUrl, and ProfileCard uses it
as the src for next/image, which expects a valid URL or absolute path.

app/main/_components/ScreenMainPage.tsx[48-58]
app/main/_components/ProfileCard.tsx[36-48]
hooks/useProfileSignUp.ts[6-57]
app/profile-image/_components/TermsDrawer.tsx[103-123]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The main page maps `partner.profileImageKey` into `ProfileData.profileImageUrl` and then uses it directly as the `src` for `next/image`. A key like `default_bear` or an S3 object key is not a valid image URL/path for `next/image`, leading to runtime errors/broken images.

### Issue Context
- API and upload flow both treat the value as an *image key*.
- UI rendering expects a valid URL/path.

### Fix Focus Areas
- app/main/_components/ScreenMainPage.tsx[48-58]
- app/main/_components/ProfileCard.tsx[36-48]
- hooks/useProfileSignUp.ts[6-57]
- app/profile-image/_components/TermsDrawer.tsx[103-123]
- lib/types/profile.ts[34-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Emoji stripping incomplete 🐞 Bug ✓ Correctness
Description
ScreenExtraInfoDetail attempts to remove emojis from tags, but the regex only targets surrogate-pair
emoji ranges and does not remove BMP/variation-selector emoji sequences like "☺️" or "👁️" present in
the advantages list. This causes inconsistent tag normalization where some emojis are removed and
others are silently kept despite the code intent to strip them.
Code

app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx[R65-75]

+      tags:
+        advantages.length > 0
+          ? advantages.map((tag) => ({
+              // 이모지 제거 (정규식 사용) 및 공백 제거
+              tag: tag
+                .replace(
+                  /[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF]|\uD83D[\uDE00-\uDE4F]|\uD83E[\uDD00-\uDDFF]/g,
+                  "",
+                )
+                .trim(),
+            }))
Evidence
The advantages source strings include BMP emojis like "☺️" and "👁️". The introduced sanitizer regex
matches surrogate-pair sequences (e.g., many U+1Fxxx emojis) but does not match BMP characters +
variation selectors, so these emojis remain in the submitted tag strings.

app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx[59-78]
lib/constants/advantages.ts[3-20]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The new tag sanitizer claims to remove emojis but misses BMP/variation-selector emoji sequences (e.g., `☺️`, `👁️`) that exist in the advantages constants, resulting in inconsistent normalization.

### Issue Context
Tag strings originate from `ADVANTAGES` and contain multiple emoji forms.

### Fix Focus Areas
- app/extra-info/detail/_components/ScreenExtraInfoDetail.tsx[59-78]
- lib/constants/advantages.ts[3-20]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Signup submits empty school fields 🐞 Bug ⛯ Reliability
Description
TermsDrawer now sends university and major as empty strings when missing and still calls
signUp without validating them. This allows reaching the signup request with required school
fields blank (e.g., via direct navigation to /profile-image or incomplete localStorage state),
leading to avoidable signup failures and poor UX.
Code

app/profile-image/_components/TermsDrawer.tsx[R122-132]

+        profileImageKey: finalImageUrl || "default",
+        socialType:
+          profile.socialType && profile.socialAccountId
+            ? profile.socialType
+            : null,
+        socialAccountId:
+          profile.socialType && profile.socialAccountId
+            ? profile.socialAccountId
+            : null,
+        university: profile.university || "",
        major: profile.major || "",
Evidence
ProfileSubmitData requires university and major, and the profile-builder flow treats those
selections as required for step completion. However, TermsDrawer only checks nickname/agreements and
then submits with "" fallbacks, so a blank required-field payload can be sent.

app/profile-image/_components/TermsDrawer.tsx[115-138]
lib/types/profile.ts[62-79]
app/profile-builder/_components/ScreenProfileBuilder.tsx[218-226]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
TermsDrawer can submit a signup payload with `university: &quot;&quot;` and `major: &quot;&quot;` because it uses empty-string fallbacks and does not validate these required fields before calling `signUp`.

### Issue Context
The profile-builder flow treats these as required, but users can still reach `/profile-image` with incomplete/empty stored state.

### Fix Focus Areas
- app/profile-image/_components/TermsDrawer.tsx[115-138]
- lib/types/profile.ts[62-79]
- app/profile-builder/_components/ScreenProfileBuilder.tsx[218-226]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 API 응답 스펙 변경에 따라 프론트엔드 전체에 걸쳐 변수명을 수정한 것으로 보입니다. (advantages -> tags, favoriteSong -> song, profileImageUrl -> profileImageKey) 변경 사항은 대부분 잘 적용되었으나, 몇 가지 개선점을 발견하여 리뷰를 남깁니다. 주요 내용으로는 이미지 키를 URL로 변환하는 로직 누락, 중복된 이모지 제거 로직, 그리고 소셜 정보 확인 로직의 가독성 개선에 대한 제안이 포함되어 있습니다.

...partner,
// API에서 null로 올 수 있는 필드들만 안전하게 변환
// API에서 필드명이 변경되었거나 null로 올 수 있는 필드들만 안전하게 변환
profileImageUrl: partner.profileImageKey,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

partner.profileImageKey는 이미지 URL이 아닌 S3와 같은 스토리지의 키(key)로 보입니다. ProfileCard 컴포넌트는 profileImageUrl prop으로 전체 이미지 URL을 기대하므로, profileImageKey를 전체 URL로 변환하는 로직이 필요합니다. 예를 들어, 유틸리티 함수를 사용하여 https://<your-cdn-domain>/${partner.profileImageKey}와 같은 형태로 만들어야 합니다. 현재 코드는 깨진 이미지를 표시할 가능성이 높습니다.

Comment on lines +69 to +74
tag: tag
.replace(
/[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF]|\uD83D[\uDE00-\uDE4F]|\uD83E[\uDD00-\uDDFF]/g,
"",
)
.trim(),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

이모지 제거를 위한 정규식과 로직이 app/profile-image/_components/TermsDrawer.tsx 파일에서도 중복으로 사용되고 있습니다. 코드 중복을 피하고 유지보수성을 높이기 위해 이 로직을 lib/utils.ts와 같은 공통 유틸리티 파일로 추출하는 것을 권장합니다.

또한, 더 간결하고 표준적인 유니코드 속성 이스케이프(Unicode property escapes) \p{Emoji}를 사용하면 가독성을 향상시킬 수 있습니다.

              tag: tag.replace(/\p{Emoji}/gu, "").trim(),
References
  1. Pure functions, such as validation logic, should be extracted into common utility files to improve reusability and separate concerns.

Comment on lines +123 to +130
socialType:
profile.socialType && profile.socialAccountId
? profile.socialType
: null,
socialAccountId:
profile.socialType && profile.socialAccountId
? profile.socialAccountId
: null,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

소셜 정보 유효성을 확인하는 profile.socialType && profile.socialAccountId 조건이 중복으로 사용되고 있습니다. 가독성을 높이고 실수를 줄이기 위해 이 조건을 변수로 추출하는 것을 고려해 보세요.

예시:

const hasSocialInfo = profile.socialType && profile.socialAccountId;
const submitData: ProfileSubmitData = {
  // ...
  socialType: hasSocialInfo ? profile.socialType : null,
  socialAccountId: hasSocialInfo ? profile.socialAccountId : null,
  // ...
};

...partner,
// API에서 null로 올 수 있는 필드들만 안전하게 변환
// API에서 필드명이 변경되었거나 null로 올 수 있는 필드들만 안전하게 변환
profileImageUrl: partner.profileImageKey,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Image key passed to image 🐞 Bug ✓ Correctness

ScreenMainPage assigns partner.profileImageKey into profileImageUrl, but ProfileCard passes
profileImageUrl directly to next/image as src. Since profileImageKey is an object key (e.g.
"default_bear" / S3 key) rather than a URL/path starting with "/" or "http", next/image will error
or render broken images on the main page.
Agent Prompt
### Issue description
The main page maps `partner.profileImageKey` into `ProfileData.profileImageUrl` and then uses it directly as the `src` for `next/image`. A key like `default_bear` or an S3 object key is not a valid image URL/path for `next/image`, leading to runtime errors/broken images.

### Issue Context
- API and upload flow both treat the value as an *image key*.
- UI rendering expects a valid URL/path.

### Fix Focus Areas
- app/main/_components/ScreenMainPage.tsx[48-58]
- app/main/_components/ProfileCard.tsx[36-48]
- hooks/useProfileSignUp.ts[6-57]
- app/profile-image/_components/TermsDrawer.tsx[103-123]
- lib/types/profile.ts[34-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant