Repository navigation
[RELEASE] v0.0.5 #331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RELEASE] v0.0.5 #331
Changes from all commits
3167ee9
2f6a7c2
f1c5095
787e832
b3b921d
8205019
0ba4fb9
d1eb0bd
ba97805
4dff347
a378cc2
b167152
27949f8
c2e014b
65f848d
59fbb76
757ee13
916ae09
494dfdd
8c90b13
c9de326
82e50a5
0a154df
4ef3d89
6eb2361
ae47464
9bdca35
d67426d
1967ea2
56f54b5
ec3ad5a
ff164e9
ccd6bfc
d41f78c
c75e8a8
52e76e3
12429b0
3a8e8c8
f5b8ec6
ff7b68f
1b009f2
b1fd741
5b41122
de99f40
a091fea
a20e29e
b84aeac
d59bb1a
6a18298
9781214
4659692
b9eb804
90451f1
bdfe5c6
fdf5b45
1d3ee6d
d3365b1
742303b
c0b4f7a
ed75430
0fc3298
bc14711
6c2bfd9
1ddc099
76212d0
0858283
d9210ce
aad348b
48a6c8f
97df411
1613e9f
38d2661
0138cfe
6d853d4
af28f0b
cb2bdb0
5c4a66e
184b1b0
b5465f4
a695caf
9fc5da4
6062541
c72ed2d
7db815d
dd96dca
743dbd3
1eeafb5
ec5b6eb
8c8c9ec
852e2a8
3844e3d
1244d01
2869095
fa35ef5
8f922b2
b8a9677
7385f73
460feb4
ae13a69
0563cdf
8b45118
dc9e078
404ff4f
0716cf4
0e3f9b9
a9cd35b
847faaa
df6bd07
a7d5a9a
d7d351b
26a4984
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,6 +34,8 @@ jobs: | |
| }; | ||
| const resolveName = (login) => NAME_MAP[login] || login; | ||
|
|
||
| const EXCLUDED_MENTION_LOGINS = ['kimminna']; | ||
|
|
||
| const webhookUrl = process.env.DISCORD_WEBHOOK_URL; | ||
| if (!webhookUrl) { | ||
| console.log('DISCORD_REMINDER_WEBHOOK_URL not set, skipping'); | ||
|
|
@@ -94,8 +96,13 @@ jobs: | |
| const hoursOpen = (now - oldestRequestTime) / (1000 * 60 * 60); | ||
| if (hoursOpen < REMINDER_THRESHOLD_HOURS) continue; | ||
|
|
||
| const mentionedReviewers = reviewers.filter( | ||
| (reviewer) => !EXCLUDED_MENTION_LOGINS.includes(reviewer.login), | ||
| ); | ||
| if (mentionedReviewers.length === 0 && teams.length === 0) continue; | ||
|
Comment on lines
+99
to
+102
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: sed -n '30,170p' .github/workflows/discord-reviewer-reminder.ymlRepository: Team-Timo/Timo-client Length of output: 4962 제외된 리뷰어를 현재
수정 제안+ const mentionedReviewers = reviewers.filter(
+ (reviewer) => !EXCLUDED_MENTION_LOGINS.includes(reviewer.login),
+ );
+
const requestTimestamps = [
- ...reviewers.map((reviewer) => reviewRequestTimes.get(`user:${reviewer.login}`)),
+ ...mentionedReviewers.map((reviewer) => reviewRequestTimes.get(`user:${reviewer.login}`)),
...teams.map((team) => reviewRequestTimes.get(`team:${team.slug}`)),
]
.filter(Boolean)
.map((timestamp) => new Date(timestamp).getTime());
@@
- const mentionedReviewers = reviewers.filter(
- (reviewer) => !EXCLUDED_MENTION_LOGINS.includes(reviewer.login),
- );
if (mentionedReviewers.length === 0 && teams.length === 0) continue;🧰 Tools🪛 zizmor (1.30.1)[warning] 1-152: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block (excessive-permissions) 🤖 Prompt for AI Agents |
||
|
|
||
| const reviewerNames = [ | ||
| ...reviewers.map((reviewer) => resolveName(reviewer.login)), | ||
| ...mentionedReviewers.map((reviewer) => resolveName(reviewer.login)), | ||
| ...teams.map((team) => team.name || team.slug), | ||
| ].join(', '); | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,7 +20,14 @@ export const WithTimeSidebarContainer = ({ | |
| children, | ||
| }: WithTimeSidebarContainerProps) => { | ||
| const isOpen = useTimeSidebarStore((state) => state.isOpen); | ||
| const isMobileOpen = useTimeSidebarStore((state) => state.isMobileOpen); | ||
| const toggleOpen = useTimeSidebarStore((state) => state.toggleOpen); | ||
| const closeMobileOpen = useTimeSidebarStore((state) => state.closeMobileOpen); | ||
|
|
||
| const handleToggleCollapse = () => { | ||
| closeMobileOpen(); | ||
| toggleOpen(); | ||
| }; | ||
|
Comment on lines
+27
to
+30
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: cat apps/timo-web/stores/time-sidebar/useTimeSidebarStore.ts
sed -n '18,60p' apps/timo-web/app/'[locale]'/'(main)'/'(with-time-sidebar)'/_containers/WithTimeSidebarContainer.tsx
sed -n '25,55p' apps/timo-web/components/layout/sidebar/time/TimeSidebarHeader.tsx
sed -n '75,100p' apps/timo-web/components/layout/sidebar/time/TimeSidebar.tsxRepository: Team-Timo/Timo-client Length of output: 3720 🏁 Script executed: set -eu
printf '%s\n' '--- sidebar container ---'
nl -ba "apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/_containers/WithTimeSidebarContainer.tsx" | sed -n '1,180p'
printf '%s\n' '--- sidebar component and header declarations ---'
nl -ba apps/timo-web/components/layout/sidebar/time/TimeSidebar.tsx | sed -n '1,220p'
nl -ba apps/timo-web/components/layout/sidebar/time/TimeSidebarHeader.tsx | sed -n '1,140p'
printf '%s\n' '--- openTimerPanel callers ---'
rg -n -F --glob '*.{ts,tsx}' -- 'openTimerPanel' apps/timo-web packages/ || test "$?" -eq 1
printf '%s\n' '--- viewport hooks/utilities ---'
rg -n -F --glob '*.{ts,tsx}' -- 'useMediaQuery' apps/timo-web packages/ || test "$?" -eq 1
rg -n -F --glob '*.{ts,tsx}' -- 'matchMedia' apps/timo-web packages/ || test "$?" -eq 1Repository: Team-Timo/Timo-client Length of output: 10299 🏁 Script executed: set -eu
printf '%s\n' '--- Today timer actions ---'
nl -ba "apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_hooks/useTodayTodoList.ts" | sed -n '135,205p'
printf '%s\n' '--- Home timer actions ---'
nl -ba "apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-todos-by-date.ts" | sed -n '145,215p'
printf '%s\n' '--- breakpoint definitions ---'
rg -n -F --glob '*.{ts,tsx,js,cjs,mjs,css}' -- '768px' apps/timo-web packages/ tailwind.config.* . 2>/dev/null || test "$?" -eq 1
rg -n -F --glob '*.{ts,tsx,js,cjs,mjs,css}' -- 'md:' apps/timo-web/components/layout/sidebar apps/timo-web/app/'[locale]'/'(main)'/'(with-time-sidebar)' 2>/dev/null || test "$?" -eq 1Repository: Team-Timo/Timo-client Length of output: 4683 🏁 Script executed: set -eu
printf '%s\n' '--- candidate styling/config files ---'
rg --files -g 'tailwind.config.*' -g 'postcss.config.*' -g 'globals.css' -g '*.css' -g 'package.json' | sort
printf '%s\n' '--- responsive configuration references ---'
rg -n -F --glob '*.{ts,tsx,js,cjs,mjs,json,css}' -- 'screens' . || test "$?" -eq 1
rg -n -F --glob '*.{ts,tsx,js,cjs,mjs,css}' -- 'md:' apps/timo-web/components/layout/sidebar/time apps/timo-web/app/'[locale]'/'(main)'/'(with-time-sidebar)' || test "$?" -eq 1Repository: Team-Timo/Timo-client Length of output: 4380 모바일 상태와 데스크톱 상태를 뷰포트 기준으로 구분해 주세요.
🤖 Prompt for AI Agents |
||
|
|
||
| const pathname = usePathname(); | ||
|
|
||
|
|
@@ -39,7 +46,13 @@ export const WithTimeSidebarContainer = ({ | |
| {children} | ||
| </div> | ||
|
|
||
| <TimeSidebar size={size} isOpen={isOpen} onToggleCollapse={toggleOpen} /> | ||
| <TimeSidebar | ||
| size={size} | ||
| isOpen={isOpen} | ||
| isMobileOpen={isMobileOpen} | ||
| onToggleCollapse={handleToggleCollapse} | ||
| onCloseMobile={closeMobileOpen} | ||
| /> | ||
| </> | ||
| ); | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,7 +5,8 @@ import { useTranslations } from "next-intl"; | |
| import { triggerScrollToToday } from "@/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-today-scroll"; | ||
| import { useHomeViewMode } from "@/app/[locale]/(main)/(with-time-sidebar)/home/_hooks/use-home-view-mode"; | ||
| import { Header } from "@/components/layout/header/Header"; | ||
| import { useNavigationSidebar } from "@/components/layout/sidebar/navigation/NavigationSidebarContext"; | ||
| import { NavigationSidebarToggle } from "@/components/layout/sidebar/navigation/NavigationSidebarToggle"; | ||
| import { useTimeSidebarStore } from "@/stores/time-sidebar/useTimeSidebarStore"; | ||
|
|
||
| export const HomeHeaderContainer = () => { | ||
| const t = useTranslations("Home"); | ||
|
|
@@ -14,7 +15,12 @@ export const HomeHeaderContainer = () => { | |
|
|
||
| const viewOptions = [basicLabel, weekLabel]; | ||
|
|
||
| const { isOpen, toggle } = useNavigationSidebar(); | ||
| const isTimeSidebarMobileOpen = useTimeSidebarStore( | ||
| (state) => state.isMobileOpen, | ||
| ); | ||
| const toggleTimeSidebarMobileOpen = useTimeSidebarStore( | ||
| (state) => state.toggleMobileOpen, | ||
| ); | ||
| const { isWeekView, setViewMode, goToNextWeek, goToPrevWeek, goToToday } = | ||
| useHomeViewMode(); | ||
|
|
||
|
|
@@ -35,7 +41,7 @@ export const HomeHeaderContainer = () => { | |
| <Header | ||
| left={ | ||
| <> | ||
| <Header.SidebarButton isOpen={isOpen} onClick={toggle} /> | ||
| <NavigationSidebarToggle /> | ||
| {isWeekView ? ( | ||
| <Header.WeeklyNav onPrev={goToPrevWeek} onNext={goToNextWeek} /> | ||
| ) : ( | ||
|
|
@@ -44,11 +50,19 @@ export const HomeHeaderContainer = () => { | |
| </> | ||
| } | ||
| right={ | ||
| <Header.ViewDropdown | ||
| items={viewOptions} | ||
| value={isWeekView ? weekLabel : basicLabel} | ||
| onChange={handleChangeView} | ||
| /> | ||
| <div className="flex items-center gap-3"> | ||
| <Header.ViewDropdown | ||
| items={viewOptions} | ||
| value={isWeekView ? weekLabel : basicLabel} | ||
| onChange={handleChangeView} | ||
| /> | ||
| <Header.SidebarButton | ||
| isOpen={isTimeSidebarMobileOpen} | ||
| onClick={toggleTimeSidebarMobileOpen} | ||
| label="시간 패널" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 시간 패널 버튼의 라벨이 한국어로 하드코딩되어 있습니다.
참고: https://next-intl.dev/docs/usage/messages 📍 Affects 2 files
🤖 Prompt for AI Agents |
||
| className="md:hidden" | ||
| /> | ||
| </div> | ||
| } | ||
| /> | ||
| ); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: Team-Timo/Timo-client
Length of output: 3794
🐛 제안된 수정
목록에 없는 작성자에게는 리뷰어를 두 명만 지정하세요.
pull_request이벤트에는 작성자 제한이 없습니다. 따라서author가kimminna도others의 사용자도 아니면others.filter(c => c !== author)는 세 명을 모두 반환합니다. 이 배열이 그대로requestReviewers에 전달되어 세 명에게 리뷰 요청이 전송됩니다.eligible에서 두 명을 선택하면 목록에 없는 작성자의 PR에서도 작성자를 제외한 리뷰어 두 명을 지정할 수 있습니다. 참고: GitHub REST API - Request reviewers for a pull request🤖 Prompt for AI Agents