Skip to content

Commit

Permalink
[#1004] NavigationContent 追加
Browse files Browse the repository at this point in the history
  • Loading branch information
okakyo committed Aug 20, 2023
1 parent 12d215d commit e4f4898
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 12 deletions.
1 change: 1 addition & 0 deletions packages/constants/component/name.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export const ComponentName = {
MenuItem: "WizMenuItem",
Drawer: "WizDrawer",
NavigationContainer: "WizNavigationContainer",
NavigationContent: "WizNavigationContent",
NavigationItem: "WizNavigationItem",
PopupContainer: "WizPopupContainer",
Popup: "WizPopup",
Expand Down
5 changes: 5 additions & 0 deletions packages/styles/bases/navigation.css.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,8 @@ export const navigationPopupContainerStyle = style({
maxHeight: "25rem",
overflowY: "auto",
});

export const navigationContentStyle = style({
marginTop: `calc(${THEME.share.HEADER_HEIGHT} + 1px)`,
transition: "margin 0.2s ease-in-out",
});
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {

import { ButtonGroupItem } from "../popup-button-group/types";

import { WizNavContainer, WizNavItem } from ".";
import { WizNavContainer, WizNavItem, WizNavContent } from ".";

export default {
title: "Base/Navigation/Container",
Expand Down Expand Up @@ -121,7 +121,7 @@ export const Close: StoryFn = (_, { argTypes }) => ({

export const Playground: StoryFn = (_, { argTypes }) => ({
props: Object.keys(argTypes),
components: { WizNavContainer, WizNavItem },
components: { WizNavContainer, WizNavItem, WizNavContent },
setup() {
const isOpen = ref(true);
const toggle = () => (isOpen.value = !isOpen.value);
Expand All @@ -136,7 +136,7 @@ export const Playground: StoryFn = (_, { argTypes }) => ({
},
template: `
<div style="display: flex; height: 100vh;">
<WizNavContainer :isOpen="isOpen">
<WizNavContainer fixed :isOpen="isOpen">
<WizNavItem :icon="WizIDashboard" label="Home" to="/" :active="false" />
<WizNavItem :icon="WizIAssignment" label="Page1" to="/page1" :active="false" />
<WizNavItem :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" />
Expand All @@ -147,17 +147,17 @@ export const Playground: StoryFn = (_, { argTypes }) => ({
<h6>Footer</h6>
</template>
</WizNavContainer>
<div>
<WizNavContent :isOpen="isOpen">
デバッグ用
<button @click="toggle">{{ isOpen ? 'Close' : 'Open' }}</button>
</div>
</WizNavContent>
</div>
`,
});

export const Fixed: StoryFn = (_, { argTypes }) => ({
props: Object.keys(argTypes),
components: { WizNavContainer, WizNavItem },
components: { WizNavContainer, WizNavItem, WizNavContent },
setup() {
return {
WizIDashboard,
Expand All @@ -179,6 +179,9 @@ export const Fixed: StoryFn = (_, { argTypes }) => ({
<h6>Footer</h6>
</template>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -262,6 +265,9 @@ export const PopupFixed: StoryFn<typeof WizNavContainer> = (args) => ({
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, args.click), createButton(4, args.click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, args.click), createButton(6, args.click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -299,6 +305,9 @@ export const PopupFixedOpen: StoryFn<typeof WizNavContainer> = (args) => ({
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, args.click), createButton(4, args.click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, args.click), createButton(6, args.click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -329,6 +338,9 @@ export const Disabled: StoryFn<typeof WizNavContainer> = (args) => ({
<WizNavItem :disabled="true" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, args.click), createButton(4, args.click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" />
<WizNavItem :disabled="true" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, args.click), createButton(6, args.click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" />
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -365,6 +377,9 @@ export const PopupAndTooltip: StoryFn<typeof WizNavContainer> = (args) => ({
<WizNavItem tooltipText="これはヒント3です。" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, args.click), createButton(4, args.click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem tooltipText="これはヒント4です。" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, args.click), createButton(6, args.click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
28 changes: 28 additions & 0 deletions packages/wiz-ui-next/src/components/base/navigation/content.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<template>
<div
:class="navigationContentStyle"
:style="{ marginLeft: computedMarginLeft }"
>
<slot />
</div>
</template>

<script setup lang="ts">
import { ComponentName } from "@wizleap-inc/wiz-ui-constants";
import { navigationContentStyle } from "@wizleap-inc/wiz-ui-styles/bases/navigation.css";
import { defineProps, computed } from "vue";
defineOptions({
name: ComponentName.NavigationContent,
});
const props = defineProps({
isOpen: {
type: Boolean,
required: false,
default: false,
},
});
const computedMarginLeft = computed(() => (props.isOpen ? "181px" : "61px"));
</script>
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export { default as WizNavContainer } from "./container.vue";
export { default as WizNavItem } from "./item.vue";
export { default as WizNavContent } from "./content.vue";
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { WizTextButton } from "../buttons";
import { WizHeader } from "../header";
import { ButtonGroupItem } from "../popup-button-group/types";

import { WizNavContainer, WizNavItem } from ".";
import { WizNavContainer, WizNavItem, WizNavContent } from ".";

export default {
title: "Base/Navigation/Container",
Expand Down Expand Up @@ -122,7 +122,7 @@ export const Close: StoryFn = (_, { argTypes }) => ({

export const Playground: StoryFn = (_, { argTypes }) => ({
props: Object.keys(argTypes),
components: { WizNavContainer, WizNavItem },
components: { WizNavContainer, WizNavItem, WizNavContent },
setup() {
const isOpen = ref(true);
const toggle = () => (isOpen.value = !isOpen.value);
Expand All @@ -137,7 +137,7 @@ export const Playground: StoryFn = (_, { argTypes }) => ({
},
template: `
<div style="display: flex; height: 100vh;">
<WizNavContainer :isOpen="isOpen">
<WizNavContainer fixed :isOpen="isOpen">
<WizNavItem :icon="WizIDashboard" label="Home" to="/" :active="false" />
<WizNavItem :icon="WizIAssignment" label="Page1" to="/page1" :active="false" />
<WizNavItem :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" />
Expand All @@ -148,17 +148,17 @@ export const Playground: StoryFn = (_, { argTypes }) => ({
<h6>Footer</h6>
</template>
</WizNavContainer>
<div>
<WizNavContent :isOpen="isOpen">
デバッグ用
<button @click="toggle">{{ isOpen ? 'Close' : 'Open' }}</button>
</div>
</WizNavContent>
</div>
`,
});

export const Fixed: StoryFn = (_, { argTypes }) => ({
props: Object.keys(argTypes),
components: { WizNavContainer, WizNavItem },
components: { WizNavContainer, WizNavItem, WizNavContent },
setup() {
return {
WizIDashboard,
Expand All @@ -180,6 +180,9 @@ export const Fixed: StoryFn = (_, { argTypes }) => ({
<h6>Footer</h6>
</template>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -263,6 +266,9 @@ export const PopupFixed: StoryFn = (_, { argTypes }) => ({
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, click), createButton(4, click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, click), createButton(6, click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -300,6 +306,9 @@ export const PopupFixedOpen: StoryFn = (_, { argTypes }) => ({
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, click), createButton(4, click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, click), createButton(6, click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -330,6 +339,9 @@ export const Disabled: StoryFn = (_, { argTypes }) => ({
<WizNavItem :disabled="true" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, click), createButton(4, click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" />
<WizNavItem :disabled="true" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, click), createButton(6, click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" />
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
Expand Down Expand Up @@ -366,6 +378,9 @@ export const PopupAndTooltip: StoryFn = (_, { argTypes }) => ({
<WizNavItem tooltipText="これはヒント3です。" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(3, click), createButton(4, click)]" :icon="WizIBusinessCenter" label="Page2" to="/page2" :active="false" :isOpen="isOpens[2].value" @toggle="toggles[2]"/>
<WizNavItem tooltipText="これはヒント4です。" :lockingPopup="lockingPopup" @setLock="setLock" :buttons="[createButton(5, click), createButton(6, click)]" :icon="WizIHelp" label="Page3" to="/page3" :active="false" :isOpen="isOpens[3].value" @toggle="toggles[3]"/>
</WizNavContainer>
<WizNavContent isOpen style="padding-left: 36px;">
<div v-for="n in 100" :key="n">テスト テスト テスト テスト テスト</div>
</WizNavContent>
</div>
`,
});
28 changes: 28 additions & 0 deletions packages/wiz-ui/src/components/base/navigation/content.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<template>
<div
:class="navigationContentStyle"
:style="{ marginLeft: computedMarginLeft }"
>
<slot />
</div>
</template>

<script setup lang="ts">
import { ComponentName } from "@wizleap-inc/wiz-ui-constants";
import { navigationContentStyle } from "@wizleap-inc/wiz-ui-styles/bases/navigation.css";
import { computed } from "vue";
defineOptions({
name: ComponentName.NavigationContent,
});
const props = defineProps({
isOpen: {
type: Boolean,
required: false,
default: false,
},
});
const computedMarginLeft = computed(() => (props.isOpen ? "181px" : "61px"));
</script>
1 change: 1 addition & 0 deletions packages/wiz-ui/src/components/base/navigation/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export { default as WizNavContainer } from "./container.vue";
export { default as WizNavItem } from "./item.vue";
export { default as WizNavContent } from "./content.vue";

0 comments on commit e4f4898

Please sign in to comment.