refactor: shard 디렉토리 구조 변경

This commit is contained in:
sechan100 2024-12-26 09:18:14 +09:00
parent 05fe3d3493
commit ff0c499215
47 changed files with 76 additions and 76 deletions

View file

@ -1,32 +1,32 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"env": { "node": true },
"plugins": [
"@typescript-eslint",
"react",
"react-hooks",
"fsd-import"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parserOptions": {
"sourceType": "module"
},
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["off", {}],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-empty-function": "off",
"react-hooks/rules-of-hooks": "error", // Hooks의 규칙을 강제
"react-hooks/exhaustive-deps": "warn", // 의존성 배열 검사
"fsd-import/fsd-relative-path": "error",
"fsd-import/public-api-imports": "error",
"fsd-import/layer-imports": "error"
}
}
"root": true,
"parser": "@typescript-eslint/parser",
"env": { "node": true },
"plugins": [
"@typescript-eslint",
"react",
"react-hooks",
"fsd-import"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"parserOptions": {
"sourceType": "module"
},
"rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["off", {}],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-empty-function": "off",
"react-hooks/rules-of-hooks": "error", // Hooks의 규칙을 강제
"react-hooks/exhaustive-deps": "warn", // 의존성 배열 검사
"fsd-import/fsd-relative-path": "error",
"fsd-import/public-api-imports": "error",
"fsd-import/layer-imports": "error"
}
}

View file

@ -1,4 +1,4 @@
import { plugin } from "@shared/plugin-service-locator"
import { plugin } from "@shared/utils/plugin-service-locator"

View file

@ -5,7 +5,7 @@ import TabNav from '@mui/material/Tabs';
import { Icon } from "@shared/components/Icon";
import { Day } from "@shared/period/day";
import { Month } from "@shared/period/month";
import { DrTabType, useTabRoute } from "@shared/use-tab-route";
import { DrTabType, useTabRoute } from "@shared/tab/use-tab-route";
import { useLeaf } from "@shared/view/use-leaf";
import { useCallback, useEffect } from "react";
import { MUIThemeProvider } from './MUIThemProvider';

View file

@ -1,6 +1,6 @@
import { AchivementPage } from "@pages/achivement/AchivementPage";
import { Month } from "@shared/period/month";
import { useTabRoute } from "@shared/use-tab-route";
import { useTabRoute } from "@shared/tab/use-tab-route";
import { useMemo } from "react";

View file

@ -1,6 +1,6 @@
import { CalendarPage } from "@pages/calendar";
import { Month } from "@shared/period/month";
import { useTabRoute } from "@shared/use-tab-route";
import { useTabRoute } from "@shared/tab/use-tab-route";
import { useMemo } from "react";

View file

@ -1,4 +1,4 @@
import { useTabRoute } from "@shared/use-tab-route";
import { useTabRoute } from "@shared/tab/use-tab-route";
import { RoutineNotePage } from "@pages/routine-note";
import { Day } from "@shared/period/day";
import { useMemo } from "react";

View file

@ -1,4 +1,4 @@
import { validateObsidianFileTitle } from "@shared/validation/validate-obsidian-file-title";
import { validateObsidianFileTitle } from "@shared/utils/validate-obsidian-file-title";
import { err, ok, Result } from "neverthrow";
import { isTask, isTaskGroup, RoutineNote, Task, TaskGroup } from "./note.type";

View file

@ -1,5 +1,5 @@
import { err, ok, Result } from "neverthrow";
import { validateObsidianFileTitle } from "@shared/validation/validate-obsidian-file-title";
import { validateObsidianFileTitle } from "@shared/utils/validate-obsidian-file-title";
import { Routine } from "@entities/routine";
import { RoutineNote, RoutineTask, Task, TodoTask } from "./note.type";
import { NoteEntity } from "./note";

View file

@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Day, DayOfWeek } from "@shared/period/day";
import { validateObsidianFileTitle } from "@shared/validation/validate-obsidian-file-title";
import { validateObsidianFileTitle } from "@shared/utils/validate-obsidian-file-title";
import { keys } from "lodash";
import { err, Err, ok, Result } from "neverthrow";
import { Routine, RoutineProperties } from "./routine.type";

View file

@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { validateObsidianFileTitle } from "@shared/validation/validate-obsidian-file-title";
import { validateObsidianFileTitle } from "@shared/utils/validate-obsidian-file-title";
import { Err, err, ok, Result } from "neverthrow";
import { RoutineGroupProperties } from "./routine.type";

View file

@ -1,10 +1,10 @@
/** @jsxImportSource @emotion/react */
import { useMemo} from "react";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { Button } from "@shared/components/Button";
import { WeekOption } from "./active-criteria-week";
import { MonthOption } from "./active-criteria-month";
import { TEXT_CSS } from "@shared/constants/text-style";
import { TEXT_CSS } from "@shared/components/text-style";
import { Routine, RoutineProperties } from "@entities/routine";

View file

@ -3,7 +3,7 @@ import { css } from '@emotion/react';
import { RoutineNote, Task, TaskEntity, TaskGroup, TaskState } from '@entities/note';
import { useRoutineNote } from "@features/note";
import { Touchable } from '@shared/components/Touchable';
import { dr } from '@shared/daily-routine-bem';
import { dr } from '@shared/utils/daily-routine-bem';
import React, { useCallback, useEffect, useRef, useState } from "react";
import { useTaskDnd } from '../dnd/use-task-dnd';
import { changeTaskState } from '../model/change-task-state';
@ -13,7 +13,7 @@ import { OptionIcon } from './OptionIcon';
import { baseHeaderStyle, dragReadyStyle, draggingStyle, elementHeight, pressedStyle } from './base-element-style';
import { DELAY_TOUCH_START } from '../dnd/dnd-context';
import { Menu } from 'obsidian';
import { isMobile } from '@shared/plugin-service-locator';
import { isMobile } from '@shared/utils/plugin-service-locator';
import { doConfirm } from '@shared/components/modal/confirm-modal';
import { DR_SETTING } from '@app/settings/setting-provider';

View file

@ -3,7 +3,7 @@ import { RoutineNote, TaskEntity, TaskGroup } from '@entities/note';
import { Accordion, AccordionDetails, AccordionSummary, accordionSummaryClasses } from '@mui/material';
import { Icon } from '@shared/components/Icon';
import { Touchable } from '@shared/components/Touchable';
import { dr } from '@shared/daily-routine-bem';
import { dr } from '@shared/utils/daily-routine-bem';
import { useLeaf } from '@shared/view/use-leaf';
import React, { useCallback, useEffect, useRef, useState } from "react";
import { useGroupDnd } from '../dnd/use-group-dnd';
@ -13,7 +13,7 @@ import { OptionIcon } from './OptionIcon';
import { CancelLineName } from './CancelLineName';
import { renderTask } from './render-task-widget';
import { Menu } from 'obsidian';
import { isMobile } from '@shared/plugin-service-locator';
import { isMobile } from '@shared/utils/plugin-service-locator';

View file

@ -1,6 +1,6 @@
/** @jsxImportSource @emotion/react */
import { css } from "@emotion/react";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
const bem = dr("task-name");

View file

@ -2,7 +2,7 @@
import { css } from "@emotion/react";
import { TaskState } from "@entities/note";
import { Icon } from "@shared/components/Icon";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { useMemo } from "react";
import { CSSTransition, SwitchTransition } from "react-transition-group";

View file

@ -3,7 +3,7 @@ import { useLeaf } from "@shared/view/use-leaf";
import { CSSProperties, useEffect, useMemo, useRef } from 'react';
import { useDragLayer } from 'react-dnd';
import { TaskElDragItem } from '../dnd/drag-item';
import { TEXT_CSS } from "@shared/constants/text-style";
import { TEXT_CSS } from "@shared/components/text-style";
import { css } from "@emotion/react";

View file

@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-var-requires */
import { Plugin, moment } from 'obsidian';
import { setPlugin } from '@shared/plugin-service-locator';
import { setPlugin } from '@shared/utils/plugin-service-locator';
import { DailyRoutinePluginSettings, DailyRoutineSettingTab, DEFAULT_SETTINGS } from '@app/settings/DailyRoutineSettingTab';
import { DailyRoutineObsidianView } from './app';
import { activateView } from '@shared/view/activate-view';

View file

@ -4,7 +4,7 @@ import { useRoutineNote } from "@features/note";
import { renderTask, TaskDndContext } from '@features/task-el';
import { Icon } from '@shared/components/Icon';
import { MenuComponent } from "@shared/components/Menu";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { useStartRoutineModal } from '@widgets/routine';
import { TaskGroupWidget, useCreateGroupModal } from '@widgets/task-group';
import { useAddTodoModal } from '@widgets/todo';

View file

@ -2,7 +2,7 @@
import { css } from "@emotion/react";
import { TextComponent } from "obsidian";
import { useRef, useState, useEffect, memo } from "react";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { Button } from "./Button";
import clsx from "clsx";

View file

@ -1,5 +1,5 @@
/** @jsxImportSource @emotion/react */
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import clsx from "clsx";
import { ToggleComponent as ObsidianToggleComponent } from "obsidian";
import { memo, useEffect, useRef } from "react";

View file

@ -2,7 +2,7 @@
import { useEffect, useRef } from "react";
import { Button } from "../Button";
import { Modal } from "obsidian";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
import { createRoot } from "react-dom/client";

View file

@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
import ReactDOM from 'react-dom';
import { Modal } from 'obsidian';
import { plugin } from '@shared/plugin-service-locator';
import { plugin } from '@shared/utils/plugin-service-locator';
import { create } from 'zustand';

View file

@ -2,7 +2,7 @@
import { useEffect, useRef, useState } from "react";
import { Button } from "../Button";
import { Modal } from "obsidian";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
import { createRoot } from "react-dom/client";

View file

@ -3,7 +3,7 @@
*/
/** @jsxImportSource @emotion/react */
import { ToggleComponent } from "@shared/components/ToggleComponent";
import { TEXT_CSS } from '../../constants/text-style';
import { TEXT_CSS } from '../text-style';
import { useEffect, useMemo } from 'react';
import { ModalApi } from './create-modal';
import { TextEditComponent } from "@shared/components/TextEditComponent"

View file

@ -1,4 +0,0 @@
import { DrTabType } from "@shared/use-tab-route";
export const INITIAL_TAB: DrTabType = "note";

View file

@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
import { TFile, TFolder } from "obsidian";

View file

@ -2,7 +2,7 @@
import { TAbstractFile, TFile, TFolder } from "obsidian";
import { TextInputSuggest } from "./suggest";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
export class FileSuggest extends TextInputSuggest<TAbstractFile> {

View file

@ -2,7 +2,7 @@
import { ISuggestOwner, Scope } from "obsidian";
import { createPopper, Instance as PopperInstance } from "@popperjs/core";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
const wrapAround = (value: number, size: number): number => {
return ((value % size) + size) % size;

View file

@ -0,0 +1,4 @@
import { DrTabType } from "@shared/tab/use-tab-route";
export const INITIAL_TAB: DrTabType = "note";

View file

@ -1,5 +1,5 @@
import { create } from "zustand";
import { INITIAL_TAB } from "./constants/initial-tab";
import { INITIAL_TAB } from "./initial-tab";
export type DrTabType = "calendar" | "note" | "achivement";

View file

@ -1,5 +1,5 @@
import { WorkspaceLeaf } from "obsidian";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
/**
* viewType에 .

View file

@ -1,5 +1,5 @@
import { DailyRoutineObsidianView } from "@app/obsidian-view";
import { plugin } from "@shared/plugin-service-locator";
import { plugin } from "@shared/utils/plugin-service-locator";
import { createStoreContext } from "@shared/zustand/create-store-context";
import { WorkspaceLeaf } from "obsidian";

View file

@ -3,12 +3,12 @@ import { Task } from "@entities/note";
import { BaseCalendar } from "@shared/components/BaseCalendar";
import { Day } from "@shared/period/day";
import { Month } from "@shared/period/month";
import { useAsync } from "@shared/use-async";
import { useAsync } from "@shared/utils/use-async";
import { useCallback, useMemo } from "react";
import { CalendarTile } from "./CalendarTile";
import { loadCalendar } from "../model/load-calendar";
import { Tile } from "../model/types";
import { useTabRoute } from "@shared/use-tab-route";
import { useTabRoute } from "@shared/tab/use-tab-route";
interface CalendarSlideProps {

View file

@ -1,7 +1,7 @@
/** @jsxImportSource @emotion/react */
import { Day } from "@shared/period/day";
import { Tile } from "../model/types"
import { TEXT_CSS } from "@shared/constants/text-style";
import { TEXT_CSS } from "@shared/components/text-style";
import { Task } from "@entities/note";
import { css } from "@emotion/react";

View file

@ -3,7 +3,7 @@ import { NoteEntity, noteRepository, RoutineNote } from '@entities/note';
import { Day } from "@shared/period/day";
import { BaseCalendar } from '@shared/components/BaseCalendar';
import { useCallback, useEffect, useState } from "react";
import { useTabRoute } from '@shared/use-tab-route';
import { useTabRoute } from '@shared/tab/use-tab-route';
import { Month } from '@shared/period/month';
import { PerformanceCircle } from '@features/performance';

View file

@ -3,7 +3,7 @@ import { routineRepository } from "@entities/routine";
import { RoutineOption, routineReducer, RoutineReducer } from "@features/routine";
import { createModal, ModalApi } from "@shared/components/modal/create-modal";
import { Modal } from "@shared/components/modal/styled";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { Notice } from "obsidian";
import { useCallback, useReducer } from "react";
import { createNewRoutine } from "../create-routine";

View file

@ -4,7 +4,7 @@ import { groupReducer, GroupReducer } from "@features/group";
import { useRoutineMutationMerge } from "@features/merge-note";
import { createModal, ModalApi } from "@shared/components/modal/create-modal";
import { Modal } from "@shared/components/modal/styled";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { Notice } from "obsidian";
import { useCallback, useReducer } from "react";

View file

@ -4,7 +4,7 @@ import { useRoutineNote } from "@features/note";
import { Button } from "@shared/components/Button";
import { createModal, ModalApi } from "@shared/components/modal/create-modal";
import { Modal } from "@shared/components/modal/styled";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { useCallback, useMemo, useState } from "react";

View file

@ -4,7 +4,7 @@ import { useRoutineNote } from '@features/note';
import { Button } from '@shared/components/Button';
import { createModal, ModalApi } from '@shared/components/modal/create-modal';
import { Modal } from '@shared/components/modal/styled';
import { dr } from '@shared/daily-routine-bem';
import { dr } from '@shared/utils/daily-routine-bem';
import { memo, useCallback, useMemo, useState } from "react";

View file

@ -2,7 +2,7 @@
import { Day } from "@shared/period/day";
import React, { useEffect, useMemo, useRef, useState } from "react";
import { DayNode } from "./types";
import { dr } from "@shared/daily-routine-bem";
import { dr } from "@shared/utils/daily-routine-bem";
import { useLeaf } from "@shared/view/use-leaf";
import { css } from "@emotion/react";
import { useWeeksActiveDay } from "./WeeksContext";