Initial deployment setup
Deploy staging / deploy (push) Failing after 6s

This commit is contained in:
root committed 2026-08-31 16:45:24 +09:00
commit 33453ecc55
3475 files changed
+850363

No files matched your search

@@ -0,0 +1,149 @@
/**
* Copyright 2025 LY Corporation
*
* LY Corporation licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
import type { ApiKey } from '@/entities/api-key';
import type { IssueTracker } from '@/entities/issue-tracker';
import type { MemberInfo } from '@/entities/member';
import { getDefaultTimezone } from '@/entities/project';
import type { ProjectInfo } from '@/entities/project';
import { PermissionList } from '@/entities/role';
import type { PermissionType, Role } from '@/entities/role';
import type { CreateProjectStepKey } from './create-project-type';
import {
CREATE_PROJECT_MAIN_STEP_LIST,
CREATE_PROJECT_STEP_MAP,
FIRST_CREATE_PROJECT_STEP,
LAST_CREATE_PROJECT_STEP,
} from './create-project-type';
const DEFAULT_ROLES: Role[] = [
{ id: 1, name: 'PROJECT_MANAGER', permissions: [...PermissionList] },
{ id: 2, name: 'END_USER', permissions: [] },
{ id: 3, name: 'FEEDBACK_PROVIDER', permissions: [] },
];
interface Input {
projectInfo: ProjectInfo;
roles: {
id: number;
name: string;
permissions: PermissionType[];
}[];
members: MemberInfo[];
issueTracker: IssueTracker;
apiKeys: ApiKey[];
}
interface Step {
key: CreateProjectStepKey;
index: number;
}
interface State {
editingStepIndex: number | null;
currentStep: Step;
input: Input;
}
interface Action {
setEditingStepIndex: (index: number) => void;
jumpStepByIndex: (index: number) => void;
jumpStepByKey: (key: CreateProjectStepKey) => void;
prevStep: () => void;
nextStep: () => void;
reset: () => void;
onChangeInput: <T extends keyof Input>(key: T, value: Input[T]) => void;
}
export const CREATE_PROJECT_DEFAULT_INPUT: Input = {
projectInfo: {
name: '',
description: '',
timezone: getDefaultTimezone(),
},
roles: DEFAULT_ROLES,
members: [],
issueTracker: {
provider: 'jira',
ticketDomain: '',
ticketKey: '',
},
apiKeys: [],
};
const DEFAULT_STATE: State = {
editingStepIndex: null,
currentStep: {
index: 0,
key: 'project-info',
},
input: CREATE_PROJECT_DEFAULT_INPUT,
};
export const useCreateProjectStore = create<State & Action>()(
persist(
(set) => ({
...DEFAULT_STATE,
setEditingStepIndex(index) {
set({ editingStepIndex: index });
},
onChangeInput: <T extends keyof Input>(key: T, value: Input[T]) => {
set(({ input }) => ({ input: { ...input, [key]: value } }));
},
jumpStepByIndex(index) {
set({
currentStep: {
index,
key: CREATE_PROJECT_MAIN_STEP_LIST[index] ?? 'project-info',
},
});
},
jumpStepByKey(key) {
set({ currentStep: { index: CREATE_PROJECT_STEP_MAP[key], key } });
},
nextStep() {
set(({ currentStep }) => ({
currentStep: {
index: Math.min(currentStep.index + 1, LAST_CREATE_PROJECT_STEP),
key:
CREATE_PROJECT_MAIN_STEP_LIST[currentStep.index + 1] ??
'project-info',
},
editingStepIndex: Math.min(
currentStep.index + 1,
LAST_CREATE_PROJECT_STEP,
),
}));
},
prevStep() {
set(({ currentStep }) => ({
currentStep: {
index: Math.max(currentStep.index - 1, FIRST_CREATE_PROJECT_STEP),
key:
CREATE_PROJECT_MAIN_STEP_LIST[currentStep.index - 1] ??
'project-info',
},
}));
},
reset() {
set({ ...DEFAULT_STATE });
},
}),
{ name: 'create-project', version: 2, migrate: () => DEFAULT_STATE },
),
);