Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
48ded74
chore: apply dynamically config (#236)
YoonJeongLulu Oct 30, 2024
3afc4c3
chore: add .pnp.cjs to .gitignore (#237)
YoonJeongLulu Oct 30, 2024
20733c9
feat: msw 환경 구축 (#235)
createhb21 Oct 30, 2024
a4f0e21
feat: login callback api route (#239)
YoonJeongLulu Nov 5, 2024
50548b1
feat: login pages (#241)
createhb21 Nov 6, 2024
c1c5cd2
feat: add typescript compile check (#246)
YoonJeongLulu Nov 6, 2024
4cffce7
fix: api server side routing -> client side (#247)
YoonJeongLulu Nov 10, 2024
561b275
feat: nickname setup flow (#250)
createhb21 Nov 11, 2024
5327795
feat: one-app cd (#252)
YoonJeongLulu Nov 15, 2024
18fe8f8
feat: ♻️ MSW 관련 함수 리팩토링 (#255)
createhb21 Nov 16, 2024
2ba8aef
feat: text & theme tailwind setting (#259)
YoonJeongLulu Nov 20, 2024
7c5bc49
feat: ✨ 유실물 목록 / 유실물 상세 API 연동 (#262)
createhb21 Nov 23, 2024
878aa71
SVG To direct rendering (#263)
YoonJeongLulu Nov 23, 2024
a30d31f
feat: 유실물 페이지 비즈니스 로직들 (웹) - 리스트, 상세, 필터 (#270)
createhb21 Dec 16, 2024
21206a0
chore: 피그마 디자인 시스템 테일윈드 테마로 적용 (#273)
holim0 Dec 18, 2024
f77b449
feat: 유실물 페이지 (웹) UI 스타일링 (#274)
createhb21 Dec 21, 2024
5c02cb5
chore: next.ahhachul.com 삭제 (#275)
createhb21 Dec 21, 2024
32d979d
chore: 이슈 번호 자동으로 붙도록 설정 추가 (#277) (#278)
holim0 Dec 24, 2024
bf73482
feat: 유실물 리스트, 상세, 댓글 목록, 댓글 입력 컴포넌트 UI 상세 작업 (#276)
createhb21 Dec 26, 2024
56b74b6
chore: 절대경로 import 하는 문제 해결, eslint 관련 경고 뜨는 현상 해결 (#282)
createhb21 Jan 5, 2025
432fb52
feat: 댓글 생성 (#283)
createhb21 Jan 5, 2025
91128f7
Merge branch 'main' into develop
createhb21 Jan 5, 2025
4efdc4a
resolve conficts
createhb21 Jan 5, 2025
04f1764
feat: 유실물 글 작성 페이지 구성 (#261)
holim0 Jan 7, 2025
4086fa9
uupdate deploy-app.yml
createhb21 Jan 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 7 additions & 4 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ module.exports = {
project: './tsconfig.eslint.json',
tsconfigRootDir: __dirname,
},
extends: ['eslint:recommended', 'plugin:react/recommended', 'plugin:storybook/recommended', 'prettier'],
plugins: ['react', '@typescript-eslint', 'react-hooks', 'jsx-a11y'],
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:storybook/recommended',
'prettier',
],
plugins: ['react', '@typescript-eslint', 'jsx-a11y'],
rules: {
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
'react/react-in-jsx-scope': 'off',
'comma-dangle': 'off',
'react/display-name': 'off',
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
@createhb21 @areumsheep @YoonJeongLulu
* @createhb21 @holim0 @YoonJeongLulu
1 change: 0 additions & 1 deletion .github/workflows/deploy-app.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: Build & Deploy Ahhachul App

on:
pull_request:
push:
branches:
- main
Expand Down
98 changes: 0 additions & 98 deletions .github/workflows/deploy-web.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn lint-staged
# lint-staged 실행
yarn lint-staged || exit 1
29 changes: 29 additions & 0 deletions .husky/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# 현재 브랜치 이름 가져오기
branch_name=$(git rev-parse --abbrev-ref HEAD)

# 브랜치 이름에서 숫자 또는 텍스트 식별자 추출
issue_identifier=$(echo "$branch_name" | grep -oE '[^/]+$')

# 식별자가 없으면 스크립트 종료
if [ -z "$issue_identifier" ]; then
echo "No issue identifier found." >> /tmp/husky-debug.log
exit 0
fi

# 커밋 메시지 파일 경로
commit_msg_file="$1"

# 커밋 메시지 경로 디버깅
if [ ! -f "$commit_msg_file" ]; then
echo "COMMIT_EDITMSG file not found: $commit_msg_file" >> /tmp/husky-debug.log
exit 1
fi

# 커밋 메시지 끝에 식별자 추가 (줄바꿈 없이)
if ! grep -q "(#$issue_identifier)" "$commit_msg_file"; then
sed -i '' -e "\$s/\$/ \\(#$issue_identifier\\)/" "$commit_msg_file"
echo "Issue identifier added: (#$issue_identifier)" >> /tmp/husky-debug.log
fi
3 changes: 3 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ packageExtensions:
dependencies:
'@lexical/clipboard': '^0.14.2'
'@lexical/selection': '^0.14.2'
'eslint-config-next@*':
dependencies:
'next': '*'
17 changes: 8 additions & 9 deletions packages/react/components/accordion/src/Accordion.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
import { useState } from "react";
import AccordionContext from "./AccordionContext";
import { AccordionProps } from "./types";
import { clsx } from "clsx";
import * as React from "react";
import { accordionStyle } from "./style.css";
import { useState } from 'react';
import AccordionContext from './AccordionContext';
import { AccordionProps } from './types';
import { clsx } from 'clsx';
import * as React from 'react';
import { accordionStyle } from './style.css';

const Accordion = (props: AccordionProps, ref: React.Ref<HTMLDivElement>) => {
const { defaultActiveItems = [], children, className, ...rest } = props;

const [activeItems, setActiveItems] =
useState<string[]>(defaultActiveItems);
const [activeItems, setActiveItems] = useState<string[]>(defaultActiveItems);

const handleSetActiveItem = (item: string) => {
if (activeItems.includes(item)) {
setActiveItems(activeItems.filter((activeItem) => activeItem !== item));
} else {
setActiveItems([...activeItems, item]);
}
};
};

return (
<AccordionContext.Provider
Expand Down
18 changes: 9 additions & 9 deletions packages/react/components/accordion/src/AccordionButton.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import * as React from "react";
import { AccordionButtonProps } from "./types";
import { clsx } from "clsx";
import { accordionButtonStyle } from "./style.css";
import { useButton } from "@ahhachul/react-hooks-button";
import { useAccordionContext } from "./AccordionContext";
import { useCallback } from "react";
import * as React from 'react';
import { AccordionButtonProps } from './types';
import { clsx } from 'clsx';
import { accordionButtonStyle } from './style.css';
import { useButton } from '@ahhachul/react-hooks-button';
import { useAccordionContext } from './AccordionContext';
import { useCallback } from 'react';

const AccordionButton = (
props: AccordionButtonProps,
ref: React.Ref<HTMLButtonElement>,
) => {
const { className, itemName = "", onClick, children, ...rest } = props;
const { className, itemName = '', onClick, children, ...rest } = props;

const { setActiveItem } = useAccordionContext();

Expand All @@ -25,7 +25,7 @@ const AccordionButton = (
const { buttonProps } = useButton({
...rest,
onClick: handleClick,
elementType: "button",
elementType: 'button',
});

return (
Expand Down
17 changes: 10 additions & 7 deletions packages/react/components/accordion/src/AccordionItem.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import * as React from "react";
import { clsx } from "clsx";
import { accordionItemStyle } from "./style.css";
import { AccordionItemProps } from "./types";
import { Children, cloneElement, isValidElement } from "react";
import * as React from 'react';
import { clsx } from 'clsx';
import { accordionItemStyle } from './style.css';
import { AccordionItemProps } from './types';
import { Children, cloneElement, isValidElement } from 'react';

const AccordionItem = (props: AccordionItemProps, ref: React.Ref<HTMLDivElement>) => {
const AccordionItem = (
props: AccordionItemProps,
ref: React.Ref<HTMLDivElement>,
) => {
const { itemName, children, className, ...rest } = props;

const childrenWithProps = Children.toArray(children);

const accordionItemChildren = childrenWithProps.map((child) => {
if (isValidElement(child)) {
return cloneElement(child, { ...child.props, itemName })
return cloneElement(child, { ...child.props, itemName });
}

return null;
Expand Down
28 changes: 16 additions & 12 deletions packages/react/components/accordion/src/AccordionPanel.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
import * as React from "react";
import { AccordionPanelProps } from "./types";
import { clsx } from "clsx";
import { accordionPanelStyle, panelHeight } from "./style.css";
import { useAccordionContext } from "./AccordionContext";
import { useEffect, useRef, useState } from "react";
import { assignInlineVars } from "@vanilla-extract/dynamic";
import * as React from 'react';
import { AccordionPanelProps } from './types';
import { clsx } from 'clsx';
import { accordionPanelStyle, panelHeight } from './style.css';
import { useAccordionContext } from './AccordionContext';
import { useEffect, useRef, useState } from 'react';
import { assignInlineVars } from '@vanilla-extract/dynamic';

const AccordionPanel = (props: AccordionPanelProps, ref: React.Ref<HTMLDivElement>) => {
const { itemName = "", children, className, style, ...rest } = props;
const AccordionPanel = (
props: AccordionPanelProps,
ref: React.Ref<HTMLDivElement>,
) => {
const { itemName = '', children, className, style, ...rest } = props;
const innerRef = useRef<HTMLDivElement>(null);

const { activeItems } = useAccordionContext();
Expand All @@ -18,7 +21,7 @@ const AccordionPanel = (props: AccordionPanelProps, ref: React.Ref<HTMLDivElemen
if (!innerRef.current) return;

setCurrentPanelHeight(
isActive ? `${innerRef.current.clientHeight}px` : "0",
isActive ? `${innerRef.current.clientHeight}px` : '0',
);
}, [isActive, activeItems]);

Expand All @@ -30,7 +33,8 @@ const AccordionPanel = (props: AccordionPanelProps, ref: React.Ref<HTMLDivElemen
data-action-item={isActive}
style={{
...assignInlineVars({
[panelHeight]: currentPanelHeight ?? `$innerRef.current.clientHeight}px`,
[panelHeight]:
currentPanelHeight ?? `$innerRef.current.clientHeight}px`,
}),
...style,
}}
Expand All @@ -40,7 +44,7 @@ const AccordionPanel = (props: AccordionPanelProps, ref: React.Ref<HTMLDivElemen
</div>
</div>
);
}
};

const _AccordionPanel = React.forwardRef(AccordionPanel);
export { _AccordionPanel as AccordionPanel };
6 changes: 3 additions & 3 deletions packages/react/components/accordion/src/types.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import * as React from "react";
import * as React from 'react';

export type AccordionProps = {
defaultActiveItems?: string[];
children: React.ReactNode | React.ReactNode[];
} & Omit<React.HTMLAttributes<HTMLDivElement>, "children">;
} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;

export type AccordionItemProps = {
children: React.ReactNode[];
itemName: string;
} & Omit<React.HTMLAttributes<HTMLDivElement>, "children">;
} & Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;

export type AccordionButtonProps = {
itemName?: string;
Expand Down
35 changes: 0 additions & 35 deletions services/next.ahhachul.com/.gitignore

This file was deleted.

Loading
Loading