-
Notifications
You must be signed in to change notification settings - Fork 0
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
router-linkのto属性でオブジェクトの使用・HyperText型のurl(string型)をpath(RouteLocationNamedRaw)に #336
Conversation
UserAccountEditの一か所だけ保留
UserAccountEditのリンク訂正 routeinfoの型変更
PR Reviewer Guide 🔍
|
PR Code Suggestions ✨
|
currentRoute.path === props.path || | ||
currentRoute.path.startsWith(`${props.path}/`) | ||
) | ||
return currentRoute.name === props.name |
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.
ロジックが変わっちゃってそうです
/
にアクセスしてるときにTopリンクがactiveにならなくなってしまってそうです- コンテストの詳細など、コンテスト一覧より下のページを見ているときにContestリンクがactiveにならなくなってしまってそうです(プロフィールやプロジェクトも同様)
const findPath = (name: string): string => { | ||
for (const route of routes) { | ||
if (route.name === name) { | ||
return route.path | ||
} | ||
} | ||
return 'Undefined' | ||
} | ||
|
||
const isActive = computed(() => { | ||
if (props.path === '/') return currentRoute.path === props.path | ||
const path = findPath(String(props.path.name)) |
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.
こんな感じにfindPath
がもっと簡潔にできそうです
const isActive = computed(() => {
const path = routes.find(route => route.name === props.path.name)?.path
if (path === undefined) {
return false
}
return (
...
currentRoute.path === props.path || | ||
currentRoute.path.startsWith(`${props.path}/`) | ||
currentRoute.name === props.path.name || | ||
currentRoute.path.startsWith(`${path}/`) |
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.
これでも多分動きはするのですが、path
がundefined
だったときにstartsWith('undefined/')
になっちゃってあんまりきれいじゃないので僕が書いたようにundefined
のときは明示的にfalse
を返すようにした方がよさそうです(テンプレートリテラル内にstring型以外を入れられないようにするeslintのルールも確かあったはずです)
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.
↑以外は問題なさそうなので、直したらマージしちゃってOKです
確認抜けでした、ごめんなさい...! |
User description
close #314
#334 の続きです、対応完了しました
PR Type
enhancement, bug fix
Description
path
プロパティの型をstring
からRouteLocationNamedRaw
に変更header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更useParam
関数でundefined
の場合にデフォルト値を設定isActive
計算プロパティのロジックを修正Changes walkthrough 📝
22 files
PageInfoPanel.vue
`path` プロパティの型変更
src/components/Index/PageInfoPanel.vue
path
プロパティの型をstring
からRouteLocationNamedRaw
に変更PageInfoPanels.vue
`path` プロパティの値をオブジェクト形式に変更
src/components/Index/PageInfoPanels.vue
path
プロパティの値をオブジェクト形式に変更ContentHeader.vue
`url` プロパティを `path` に変更
src/components/Layout/ContentHeader.vue
url
プロパティをpath
に変更し、型をRouteLocationNamedRaw
に変更NavigationLinksItem.vue
`path` プロパティの型変更と `isActive` ロジック修正
src/components/NavigationBar/NavigationLinksItem.vue
path
プロパティの型をstring
からRouteLocationNamedRaw
に変更isActive
計算プロパティのロジックを修正ProjectItem.vue
`router-link` の `to` 属性をオブジェクト形式に変更
src/components/Projects/ProjectItem.vue
router-link
のto
属性をオブジェクト形式に変更Contest.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Contest.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更ContestEdit.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/ContestEdit.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更ContestNew.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/ContestNew.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更ContestTeamEdit.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/ContestTeamEdit.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更ContestTeamNew.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/ContestTeamNew.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Contests.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Contests.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Event.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Event.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Events.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Events.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Index.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Index.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Project.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Project.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更ProjectNew.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/ProjectNew.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更Projects.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/Projects.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更User.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/User.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更UserAccountEdit.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/UserAccountEdit.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更UserAccountNew.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/UserAccountNew.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更UserAccounts.vue
`header-texts` の `url` プロパティを `path` に変更
src/pages/UserAccounts.vue
header-texts
のurl
プロパティをpath
に変更し、オブジェクト形式に変更routeInfo.ts
`path` プロパティの型変更とデフォルト値修正
src/lib/routeInfo.ts
path
プロパティの型をstring
からRouteLocationNamedRaw
に変更path
を空オブジェクトに変更1 files
param.ts
`useParam` 関数のデフォルト値設定
src/lib/param.ts
useParam
関数でundefined
の場合にデフォルト値を設定