From 7370316ea037e57f6f33495e2c799122dac7290b Mon Sep 17 00:00:00 2001 From: louiscklaw Date: Mon, 16 Jun 2025 00:01:36 +0800 Subject: [PATCH] party-order list ok, --- .../src/app/api/party-order/list/route.ts | 4 +- 03_source/frontend/eslint-show-config.json | 1721 ----------------- 03_source/frontend/src/actions/party-order.ts | 235 ++- 03_source/frontend/src/lib/axios.ts | 2 + .../party-order-table-filters-result.tsx | 4 +- .../party-order/party-order-table-row.tsx | 4 +- .../party-order/party-order-table-toolbar.tsx | 4 +- .../view/party-order-details-view.tsx | 4 +- .../view/party-order-list-view.tsx | 29 +- 03_source/frontend/src/types/party-order.ts | 4 +- 10 files changed, 135 insertions(+), 1876 deletions(-) diff --git a/03_source/cms_backend/src/app/api/party-order/list/route.ts b/03_source/cms_backend/src/app/api/party-order/list/route.ts index 5bde94d..6d688c7 100644 --- a/03_source/cms_backend/src/app/api/party-order/list/route.ts +++ b/03_source/cms_backend/src/app/api/party-order/list/route.ts @@ -25,11 +25,11 @@ export async function GET(req: NextRequest) { const debug = { 'req.headers': flattenNextjsRequest(req) }; try { - const orders = await listPartyOrders(); + const partyOrders = await listPartyOrders(); createAppLog(L_INFO, 'party-order list ok', {}); - return response({ orders }, STATUS.OK); + return response({ partyOrders }, STATUS.OK); } catch (error) { createAppLog(L_ERROR, 'party-order list error', debug); diff --git a/03_source/frontend/eslint-show-config.json b/03_source/frontend/eslint-show-config.json index 56933eb..e69de29 100644 --- a/03_source/frontend/eslint-show-config.json +++ b/03_source/frontend/eslint-show-config.json @@ -1,1721 +0,0 @@ -{ - "settings": { - "react": { - "version": "detect" - }, - "import/extensions": [ - ".ts", - ".cts", - ".mts", - ".tsx", - ".js", - ".jsx", - ".mjs", - ".cjs" - ], - "import/external-module-folders": [ - "node_modules", - "node_modules/@types" - ], - "import/parsers": { - "@typescript-eslint/parser": [ - ".ts", - ".cts", - ".mts", - ".tsx" - ] - }, - "import/resolver": { - "node": { - "extensions": [ - ".ts", - ".cts", - ".mts", - ".tsx", - ".js", - ".jsx", - ".mjs", - ".cjs" - ] - }, - "typescript": { - "project": "./tsconfig.json" - } - } - }, - "linterOptions": { - "reportUnusedDisableDirectives": 1 - }, - "rules": { - "constructor-super": [ - 2 - ], - "for-direction": [ - 2 - ], - "getter-return": [ - 2, - { - "allowImplicit": false - } - ], - "no-async-promise-executor": [ - 2 - ], - "no-case-declarations": [ - 2 - ], - "no-class-assign": [ - 2 - ], - "no-compare-neg-zero": [ - 2 - ], - "no-cond-assign": [ - 2, - "except-parens" - ], - "no-const-assign": [ - 2 - ], - "no-constant-binary-expression": [ - 2 - ], - "no-constant-condition": [ - 1, - { - "checkLoops": "allExceptWhileTrue" - } - ], - "no-control-regex": [ - 2 - ], - "no-debugger": [ - 2 - ], - "no-delete-var": [ - 2 - ], - "no-dupe-args": [ - 2 - ], - "no-dupe-class-members": [ - 2 - ], - "no-dupe-else-if": [ - 2 - ], - "no-dupe-keys": [ - 2 - ], - "no-duplicate-case": [ - 2 - ], - "no-empty": [ - 2, - { - "allowEmptyCatch": false - } - ], - "no-empty-character-class": [ - 2 - ], - "no-empty-pattern": [ - 2, - { - "allowObjectPatternsAsParameters": false - } - ], - "no-empty-static-block": [ - 2 - ], - "no-ex-assign": [ - 2 - ], - "no-extra-boolean-cast": [ - 2, - {} - ], - "no-fallthrough": [ - 2, - { - "allowEmptyCase": false, - "reportUnusedFallthroughComment": false - } - ], - "no-func-assign": [ - 2 - ], - "no-global-assign": [ - 2, - { - "exceptions": [] - } - ], - "no-import-assign": [ - 2 - ], - "no-invalid-regexp": [ - 2, - {} - ], - "no-irregular-whitespace": [ - 2, - { - "skipComments": false, - "skipJSXText": false, - "skipRegExps": false, - "skipStrings": true, - "skipTemplates": false - } - ], - "no-loss-of-precision": [ - 2 - ], - "no-misleading-character-class": [ - 2 - ], - "no-new-native-nonconstructor": [ - 2 - ], - "no-nonoctal-decimal-escape": [ - 2 - ], - "no-obj-calls": [ - 2 - ], - "no-octal": [ - 2 - ], - "no-prototype-builtins": [ - 2 - ], - "no-redeclare": [ - 2, - { - "builtinGlobals": true - } - ], - "no-regex-spaces": [ - 2 - ], - "no-self-assign": [ - 2, - { - "props": true - } - ], - "no-setter-return": [ - 2 - ], - "no-shadow-restricted-names": [ - 2 - ], - "no-sparse-arrays": [ - 2 - ], - "no-this-before-super": [ - 2 - ], - "no-undef": [ - 2, - { - "typeof": false - } - ], - "no-unexpected-multiline": [ - 2 - ], - "no-unreachable": [ - 2 - ], - "no-unsafe-finally": [ - 2 - ], - "no-unsafe-negation": [ - 2, - { - "enforceForOrderingRelations": false - } - ], - "no-unsafe-optional-chaining": [ - 2, - { - "disallowArithmeticOperators": false - } - ], - "no-unused-labels": [ - 2 - ], - "no-unused-private-class-members": [ - 2 - ], - "no-unused-vars": [ - 0 - ], - "no-useless-backreference": [ - 2 - ], - "no-useless-catch": [ - 2 - ], - "no-useless-escape": [ - 2 - ], - "no-with": [ - 2 - ], - "require-yield": [ - 2 - ], - "use-isnan": [ - 2, - { - "enforceForIndexOf": false, - "enforceForSwitchCase": true - } - ], - "valid-typeof": [ - 2, - { - "requireStringLiterals": false - } - ], - "@typescript-eslint/ban-ts-comment": [ - 2 - ], - "no-array-constructor": [ - 0 - ], - "@typescript-eslint/no-array-constructor": [ - 2 - ], - "@typescript-eslint/no-duplicate-enum-values": [ - 2 - ], - "@typescript-eslint/no-empty-object-type": [ - 0 - ], - "@typescript-eslint/no-explicit-any": [ - 0 - ], - "@typescript-eslint/no-extra-non-null-assertion": [ - 2 - ], - "@typescript-eslint/no-misused-new": [ - 2 - ], - "@typescript-eslint/no-namespace": [ - 2 - ], - "@typescript-eslint/no-non-null-asserted-optional-chain": [ - 2 - ], - "@typescript-eslint/no-require-imports": [ - 2 - ], - "@typescript-eslint/no-this-alias": [ - 2 - ], - "@typescript-eslint/no-unnecessary-type-constraint": [ - 2 - ], - "@typescript-eslint/no-unsafe-declaration-merging": [ - 2 - ], - "@typescript-eslint/no-unsafe-function-type": [ - 2 - ], - "no-unused-expressions": [ - 0, - { - "allowShortCircuit": false, - "allowTernary": false, - "allowTaggedTemplates": false, - "enforceForJSX": false - } - ], - "@typescript-eslint/no-unused-expressions": [ - 2, - { - "allowShortCircuit": false, - "allowTaggedTemplates": false, - "allowTernary": false - } - ], - "@typescript-eslint/no-unused-vars": [ - 1, - { - "args": "none" - } - ], - "@typescript-eslint/no-wrapper-object-types": [ - 2 - ], - "@typescript-eslint/prefer-as-const": [ - 2 - ], - "@typescript-eslint/prefer-namespace-keyword": [ - 2 - ], - "@typescript-eslint/triple-slash-reference": [ - 2 - ], - "react/display-name": [ - 0 - ], - "react/jsx-key": [ - 0 - ], - "react/jsx-no-comment-textnodes": [ - 2 - ], - "react/jsx-no-duplicate-props": [ - 2 - ], - "react/jsx-no-target-blank": [ - 2 - ], - "react/jsx-no-undef": [ - 2 - ], - "react/jsx-uses-react": [ - 2 - ], - "react/jsx-uses-vars": [ - 2 - ], - "react/no-children-prop": [ - 0 - ], - "react/no-danger-with-children": [ - 2 - ], - "react/no-deprecated": [ - 2 - ], - "react/no-direct-mutation-state": [ - 2 - ], - "react/no-find-dom-node": [ - 2 - ], - "react/no-is-mounted": [ - 2 - ], - "react/no-render-return-value": [ - 2 - ], - "react/no-string-refs": [ - 2 - ], - "react/no-unescaped-entities": [ - 2 - ], - "react/no-unknown-property": [ - 2 - ], - "react/no-unsafe": [ - 0 - ], - "react/prop-types": [ - 0 - ], - "react/react-in-jsx-scope": [ - 0 - ], - "react/require-render-return": [ - 2 - ], - "react-hooks/rules-of-hooks": [ - 2 - ], - "react-hooks/exhaustive-deps": [ - 1 - ], - "func-names": [ - 1, - "always", - {} - ], - "no-bitwise": [ - 2, - { - "allow": [], - "int32Hint": false - } - ], - "object-shorthand": [ - 1 - ], - "no-useless-rename": [ - 1, - { - "ignoreDestructuring": false, - "ignoreImport": false, - "ignoreExport": false - } - ], - "default-case-last": [ - 2 - ], - "consistent-return": [ - 2, - { - "treatUndefinedAsUnspecified": false - } - ], - "default-case": [ - 2, - { - "commentPattern": "^no default$" - } - ], - "lines-around-directive": [ - 2, - { - "before": "always", - "after": "always" - } - ], - "arrow-body-style": [ - 2, - "as-needed", - { - "requireReturnForObjectLiteral": false - } - ], - "react/jsx-boolean-value": [ - 2 - ], - "react/self-closing-comp": [ - 2 - ], - "react/jsx-no-useless-fragment": [ - 1, - { - "allowExpressions": true - } - ], - "react/jsx-curly-brace-presence": [ - 2, - { - "props": "never", - "children": "never" - } - ], - "@typescript-eslint/no-shadow": [ - 2 - ], - "@typescript-eslint/consistent-type-imports": [ - 1 - ], - "import/no-unresolved": [ - 2 - ], - "import/named": [ - 0 - ], - "import/namespace": [ - 0 - ], - "import/default": [ - 0 - ], - "import/export": [ - 0 - ], - "import/no-named-as-default": [ - 0 - ], - "import/no-named-as-default-member": [ - 0 - ], - "import/no-duplicates": [ - 1 - ], - "import/newline-after-import": [ - 2 - ], - "import/no-cycle": [ - 0, - { - "maxDepth": "∞", - "ignoreExternal": false, - "allowUnsafeDynamicCyclicDependency": false - } - ], - "unused-imports/no-unused-imports": [ - 1 - ], - "unused-imports/no-unused-vars": [ - 0, - { - "vars": "all", - "varsIgnorePattern": "^_", - "args": "after-used", - "argsIgnorePattern": "^_" - } - ] - }, - "plugins": [ - "@", - "@typescript-eslint:@typescript-eslint/eslint-plugin@8.28.0", - "react", - "react-hooks:eslint-plugin-react-hooks", - "unused-imports:unused-imports", - "perfectionist:perfectionist", - "import" - ], - "language": "@/js", - "languageOptions": { - "sourceType": "module", - "ecmaVersion": 2025, - "parser": "typescript-eslint/parser@8.28.0", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - } - }, - "globals": { - "AbortController": false, - "AbortSignal": false, - "AbsoluteOrientationSensor": false, - "AbstractRange": false, - "Accelerometer": false, - "addEventListener": false, - "ai": false, - "AI": false, - "AITextSession": false, - "alert": false, - "AnalyserNode": false, - "Animation": false, - "AnimationEffect": false, - "AnimationEvent": false, - "AnimationPlaybackEvent": false, - "AnimationTimeline": false, - "atob": false, - "Attr": false, - "Audio": false, - "AudioBuffer": false, - "AudioBufferSourceNode": false, - "AudioContext": false, - "AudioData": false, - "AudioDecoder": false, - "AudioDestinationNode": false, - "AudioEncoder": false, - "AudioListener": false, - "AudioNode": false, - "AudioParam": false, - "AudioParamMap": false, - "AudioProcessingEvent": false, - "AudioScheduledSourceNode": false, - "AudioSinkInfo": false, - "AudioWorklet": false, - "AudioWorkletGlobalScope": false, - "AudioWorkletNode": false, - "AudioWorkletProcessor": false, - "AuthenticatorAssertionResponse": false, - "AuthenticatorAttestationResponse": false, - "AuthenticatorResponse": false, - "BackgroundFetchManager": false, - "BackgroundFetchRecord": false, - "BackgroundFetchRegistration": false, - "BarcodeDetector": false, - "BarProp": false, - "BaseAudioContext": false, - "BatteryManager": false, - "BeforeUnloadEvent": false, - "BiquadFilterNode": false, - "Blob": false, - "BlobEvent": false, - "Bluetooth": false, - "BluetoothCharacteristicProperties": false, - "BluetoothDevice": false, - "BluetoothRemoteGATTCharacteristic": false, - "BluetoothRemoteGATTDescriptor": false, - "BluetoothRemoteGATTServer": false, - "BluetoothRemoteGATTService": false, - "BluetoothUUID": false, - "blur": false, - "BroadcastChannel": false, - "BrowserCaptureMediaStreamTrack": false, - "btoa": false, - "ByteLengthQueuingStrategy": false, - "Cache": false, - "caches": false, - "CacheStorage": false, - "cancelAnimationFrame": false, - "cancelIdleCallback": false, - "CanvasCaptureMediaStream": false, - "CanvasCaptureMediaStreamTrack": false, - "CanvasGradient": false, - "CanvasPattern": false, - "CanvasRenderingContext2D": false, - "CaptureController": false, - "CaretPosition": false, - "CDATASection": false, - "ChannelMergerNode": false, - "ChannelSplitterNode": false, - "ChapterInformation": false, - "CharacterBoundsUpdateEvent": false, - "CharacterData": false, - "clearInterval": false, - "clearTimeout": false, - "clientInformation": false, - "Clipboard": false, - "ClipboardEvent": false, - "ClipboardItem": false, - "close": false, - "closed": false, - "CloseEvent": false, - "CloseWatcher": false, - "Comment": false, - "CompositionEvent": false, - "CompressionStream": false, - "confirm": false, - "console": false, - "ConstantSourceNode": false, - "ContentVisibilityAutoStateChangeEvent": false, - "ConvolverNode": false, - "CookieChangeEvent": false, - "CookieDeprecationLabel": false, - "cookieStore": false, - "CookieStore": false, - "CookieStoreManager": false, - "CountQueuingStrategy": false, - "createImageBitmap": false, - "Credential": false, - "credentialless": false, - "CredentialsContainer": false, - "CropTarget": false, - "crossOriginIsolated": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CSS": false, - "CSSAnimation": false, - "CSSConditionRule": false, - "CSSContainerRule": false, - "CSSCounterStyleRule": false, - "CSSFontFaceRule": false, - "CSSFontFeatureValuesRule": false, - "CSSFontPaletteValuesRule": false, - "CSSGroupingRule": false, - "CSSImageValue": false, - "CSSImportRule": false, - "CSSKeyframeRule": false, - "CSSKeyframesRule": false, - "CSSKeywordValue": false, - "CSSLayerBlockRule": false, - "CSSLayerStatementRule": false, - "CSSMarginRule": false, - "CSSMathClamp": false, - "CSSMathInvert": false, - "CSSMathMax": false, - "CSSMathMin": false, - "CSSMathNegate": false, - "CSSMathProduct": false, - "CSSMathSum": false, - "CSSMathValue": false, - "CSSMatrixComponent": false, - "CSSMediaRule": false, - "CSSNamespaceRule": false, - "CSSNestedDeclarations": false, - "CSSNumericArray": false, - "CSSNumericValue": false, - "CSSPageDescriptors": false, - "CSSPageRule": false, - "CSSPerspective": false, - "CSSPositionTryDescriptors": false, - "CSSPositionTryRule": false, - "CSSPositionValue": false, - "CSSPropertyRule": false, - "CSSRotate": false, - "CSSRule": false, - "CSSRuleList": false, - "CSSScale": false, - "CSSScopeRule": false, - "CSSSkew": false, - "CSSSkewX": false, - "CSSSkewY": false, - "CSSStartingStyleRule": false, - "CSSStyleDeclaration": false, - "CSSStyleRule": false, - "CSSStyleSheet": false, - "CSSStyleValue": false, - "CSSSupportsRule": false, - "CSSTransformComponent": false, - "CSSTransformValue": false, - "CSSTransition": false, - "CSSTranslate": false, - "CSSUnitValue": false, - "CSSUnparsedValue": false, - "CSSVariableReferenceValue": false, - "CSSViewTransitionRule": false, - "currentFrame": false, - "currentTime": false, - "CustomElementRegistry": false, - "customElements": false, - "CustomEvent": false, - "CustomStateSet": false, - "DataTransfer": false, - "DataTransferItem": false, - "DataTransferItemList": false, - "DecompressionStream": false, - "DelayNode": false, - "DelegatedInkTrailPresenter": false, - "DeviceMotionEvent": false, - "DeviceMotionEventAcceleration": false, - "DeviceMotionEventRotationRate": false, - "DeviceOrientationEvent": false, - "devicePixelRatio": false, - "dispatchEvent": false, - "document": false, - "Document": false, - "DocumentFragment": false, - "documentPictureInPicture": false, - "DocumentPictureInPicture": false, - "DocumentPictureInPictureEvent": false, - "DocumentTimeline": false, - "DocumentType": false, - "DOMError": false, - "DOMException": false, - "DOMImplementation": false, - "DOMMatrix": false, - "DOMMatrixReadOnly": false, - "DOMParser": false, - "DOMPoint": false, - "DOMPointReadOnly": false, - "DOMQuad": false, - "DOMRect": false, - "DOMRectList": false, - "DOMRectReadOnly": false, - "DOMStringList": false, - "DOMStringMap": false, - "DOMTokenList": false, - "DragEvent": false, - "DynamicsCompressorNode": false, - "EditContext": false, - "Element": false, - "ElementInternals": false, - "EncodedAudioChunk": false, - "EncodedVideoChunk": false, - "ErrorEvent": false, - "event": false, - "Event": false, - "EventCounts": false, - "EventSource": false, - "EventTarget": false, - "external": false, - "External": false, - "EyeDropper": false, - "FeaturePolicy": false, - "FederatedCredential": false, - "fence": false, - "Fence": false, - "FencedFrameConfig": false, - "fetch": false, - "fetchLater": false, - "FetchLaterResult": false, - "File": false, - "FileList": false, - "FileReader": false, - "FileSystem": false, - "FileSystemDirectoryEntry": false, - "FileSystemDirectoryHandle": false, - "FileSystemDirectoryReader": false, - "FileSystemEntry": false, - "FileSystemFileEntry": false, - "FileSystemFileHandle": false, - "FileSystemHandle": false, - "FileSystemWritableFileStream": false, - "find": false, - "Float16Array": false, - "focus": false, - "FocusEvent": false, - "FontData": false, - "FontFace": false, - "FontFaceSet": false, - "FontFaceSetLoadEvent": false, - "FormData": false, - "FormDataEvent": false, - "FragmentDirective": false, - "frameElement": false, - "frames": false, - "GainNode": false, - "Gamepad": false, - "GamepadAxisMoveEvent": false, - "GamepadButton": false, - "GamepadButtonEvent": false, - "GamepadEvent": false, - "GamepadHapticActuator": false, - "GamepadPose": false, - "Geolocation": false, - "GeolocationCoordinates": false, - "GeolocationPosition": false, - "GeolocationPositionError": false, - "getComputedStyle": false, - "getScreenDetails": false, - "getSelection": false, - "GPU": false, - "GPUAdapter": false, - "GPUAdapterInfo": false, - "GPUBindGroup": false, - "GPUBindGroupLayout": false, - "GPUBuffer": false, - "GPUBufferUsage": false, - "GPUCanvasContext": false, - "GPUColorWrite": false, - "GPUCommandBuffer": false, - "GPUCommandEncoder": false, - "GPUCompilationInfo": false, - "GPUCompilationMessage": false, - "GPUComputePassEncoder": false, - "GPUComputePipeline": false, - "GPUDevice": false, - "GPUDeviceLostInfo": false, - "GPUError": false, - "GPUExternalTexture": false, - "GPUInternalError": false, - "GPUMapMode": false, - "GPUOutOfMemoryError": false, - "GPUPipelineError": false, - "GPUPipelineLayout": false, - "GPUQuerySet": false, - "GPUQueue": false, - "GPURenderBundle": false, - "GPURenderBundleEncoder": false, - "GPURenderPassEncoder": false, - "GPURenderPipeline": false, - "GPUSampler": false, - "GPUShaderModule": false, - "GPUShaderStage": false, - "GPUSupportedFeatures": false, - "GPUSupportedLimits": false, - "GPUTexture": false, - "GPUTextureUsage": false, - "GPUTextureView": false, - "GPUUncapturedErrorEvent": false, - "GPUValidationError": false, - "GravitySensor": false, - "Gyroscope": false, - "HashChangeEvent": false, - "Headers": false, - "HID": false, - "HIDConnectionEvent": false, - "HIDDevice": false, - "HIDInputReportEvent": false, - "Highlight": false, - "HighlightRegistry": false, - "history": false, - "History": false, - "HTMLAllCollection": false, - "HTMLAnchorElement": false, - "HTMLAreaElement": false, - "HTMLAudioElement": false, - "HTMLBaseElement": false, - "HTMLBodyElement": false, - "HTMLBRElement": false, - "HTMLButtonElement": false, - "HTMLCanvasElement": false, - "HTMLCollection": false, - "HTMLDataElement": false, - "HTMLDataListElement": false, - "HTMLDetailsElement": false, - "HTMLDialogElement": false, - "HTMLDirectoryElement": false, - "HTMLDivElement": false, - "HTMLDListElement": false, - "HTMLDocument": false, - "HTMLElement": false, - "HTMLEmbedElement": false, - "HTMLFencedFrameElement": false, - "HTMLFieldSetElement": false, - "HTMLFontElement": false, - "HTMLFormControlsCollection": false, - "HTMLFormElement": false, - "HTMLFrameElement": false, - "HTMLFrameSetElement": false, - "HTMLHeadElement": false, - "HTMLHeadingElement": false, - "HTMLHRElement": false, - "HTMLHtmlElement": false, - "HTMLIFrameElement": false, - "HTMLImageElement": false, - "HTMLInputElement": false, - "HTMLLabelElement": false, - "HTMLLegendElement": false, - "HTMLLIElement": false, - "HTMLLinkElement": false, - "HTMLMapElement": false, - "HTMLMarqueeElement": false, - "HTMLMediaElement": false, - "HTMLMenuElement": false, - "HTMLMetaElement": false, - "HTMLMeterElement": false, - "HTMLModElement": false, - "HTMLObjectElement": false, - "HTMLOListElement": false, - "HTMLOptGroupElement": false, - "HTMLOptionElement": false, - "HTMLOptionsCollection": false, - "HTMLOutputElement": false, - "HTMLParagraphElement": false, - "HTMLParamElement": false, - "HTMLPictureElement": false, - "HTMLPreElement": false, - "HTMLProgressElement": false, - "HTMLQuoteElement": false, - "HTMLScriptElement": false, - "HTMLSelectElement": false, - "HTMLSlotElement": false, - "HTMLSourceElement": false, - "HTMLSpanElement": false, - "HTMLStyleElement": false, - "HTMLTableCaptionElement": false, - "HTMLTableCellElement": false, - "HTMLTableColElement": false, - "HTMLTableElement": false, - "HTMLTableRowElement": false, - "HTMLTableSectionElement": false, - "HTMLTemplateElement": false, - "HTMLTextAreaElement": false, - "HTMLTimeElement": false, - "HTMLTitleElement": false, - "HTMLTrackElement": false, - "HTMLUListElement": false, - "HTMLUnknownElement": false, - "HTMLVideoElement": false, - "IDBCursor": false, - "IDBCursorWithValue": false, - "IDBDatabase": false, - "IDBFactory": false, - "IDBIndex": false, - "IDBKeyRange": false, - "IDBObjectStore": false, - "IDBOpenDBRequest": false, - "IDBRequest": false, - "IDBTransaction": false, - "IDBVersionChangeEvent": false, - "IdentityCredential": false, - "IdentityCredentialError": false, - "IdentityProvider": false, - "IdleDeadline": false, - "IdleDetector": false, - "IIRFilterNode": false, - "Image": false, - "ImageBitmap": false, - "ImageBitmapRenderingContext": false, - "ImageCapture": false, - "ImageData": false, - "ImageDecoder": false, - "ImageTrack": false, - "ImageTrackList": false, - "indexedDB": false, - "Ink": false, - "innerHeight": false, - "innerWidth": false, - "InputDeviceCapabilities": false, - "InputDeviceInfo": false, - "InputEvent": false, - "IntersectionObserver": false, - "IntersectionObserverEntry": false, - "isSecureContext": false, - "Keyboard": false, - "KeyboardEvent": false, - "KeyboardLayoutMap": false, - "KeyframeEffect": false, - "LargestContentfulPaint": false, - "LaunchParams": false, - "launchQueue": false, - "LaunchQueue": false, - "LayoutShift": false, - "LayoutShiftAttribution": false, - "length": false, - "LinearAccelerationSensor": false, - "localStorage": false, - "location": true, - "Location": false, - "locationbar": false, - "Lock": false, - "LockManager": false, - "matchMedia": false, - "MathMLElement": false, - "MediaCapabilities": false, - "MediaCapabilitiesInfo": false, - "MediaDeviceInfo": false, - "MediaDevices": false, - "MediaElementAudioSourceNode": false, - "MediaEncryptedEvent": false, - "MediaError": false, - "MediaKeyError": false, - "MediaKeyMessageEvent": false, - "MediaKeys": false, - "MediaKeySession": false, - "MediaKeyStatusMap": false, - "MediaKeySystemAccess": false, - "MediaList": false, - "MediaMetadata": false, - "MediaQueryList": false, - "MediaQueryListEvent": false, - "MediaRecorder": false, - "MediaRecorderErrorEvent": false, - "MediaSession": false, - "MediaSource": false, - "MediaSourceHandle": false, - "MediaStream": false, - "MediaStreamAudioDestinationNode": false, - "MediaStreamAudioSourceNode": false, - "MediaStreamEvent": false, - "MediaStreamTrack": false, - "MediaStreamTrackAudioSourceNode": false, - "MediaStreamTrackAudioStats": false, - "MediaStreamTrackEvent": false, - "MediaStreamTrackGenerator": false, - "MediaStreamTrackProcessor": false, - "MediaStreamTrackVideoStats": false, - "menubar": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "MIDIAccess": false, - "MIDIConnectionEvent": false, - "MIDIInput": false, - "MIDIInputMap": false, - "MIDIMessageEvent": false, - "MIDIOutput": false, - "MIDIOutputMap": false, - "MIDIPort": false, - "MimeType": false, - "MimeTypeArray": false, - "model": false, - "ModelGenericSession": false, - "ModelManager": false, - "MouseEvent": false, - "moveBy": false, - "moveTo": false, - "MutationEvent": false, - "MutationObserver": false, - "MutationRecord": false, - "name": false, - "NamedNodeMap": false, - "NavigateEvent": false, - "navigation": false, - "Navigation": false, - "NavigationActivation": false, - "NavigationCurrentEntryChangeEvent": false, - "NavigationDestination": false, - "NavigationHistoryEntry": false, - "NavigationPreloadManager": false, - "NavigationTransition": false, - "navigator": false, - "Navigator": false, - "NavigatorLogin": false, - "NavigatorManagedData": false, - "NavigatorUAData": false, - "NetworkInformation": false, - "Node": false, - "NodeFilter": false, - "NodeIterator": false, - "NodeList": false, - "Notification": false, - "NotifyPaintEvent": false, - "NotRestoredReasonDetails": false, - "NotRestoredReasons": false, - "OfflineAudioCompletionEvent": false, - "OfflineAudioContext": false, - "offscreenBuffering": false, - "OffscreenCanvas": false, - "OffscreenCanvasRenderingContext2D": false, - "onabort": true, - "onafterprint": true, - "onanimationcancel": true, - "onanimationend": true, - "onanimationiteration": true, - "onanimationstart": true, - "onappinstalled": true, - "onauxclick": true, - "onbeforeinput": true, - "onbeforeinstallprompt": true, - "onbeforematch": true, - "onbeforeprint": true, - "onbeforetoggle": true, - "onbeforeunload": true, - "onbeforexrselect": true, - "onblur": true, - "oncancel": true, - "oncanplay": true, - "oncanplaythrough": true, - "onchange": true, - "onclick": true, - "onclose": true, - "oncontentvisibilityautostatechange": true, - "oncontextlost": true, - "oncontextmenu": true, - "oncontextrestored": true, - "oncopy": true, - "oncuechange": true, - "oncut": true, - "ondblclick": true, - "ondevicemotion": true, - "ondeviceorientation": true, - "ondeviceorientationabsolute": true, - "ondrag": true, - "ondragend": true, - "ondragenter": true, - "ondragleave": true, - "ondragover": true, - "ondragstart": true, - "ondrop": true, - "ondurationchange": true, - "onemptied": true, - "onended": true, - "onerror": true, - "onfocus": true, - "onformdata": true, - "ongamepadconnected": true, - "ongamepaddisconnected": true, - "ongotpointercapture": true, - "onhashchange": true, - "oninput": true, - "oninvalid": true, - "onkeydown": true, - "onkeypress": true, - "onkeyup": true, - "onlanguagechange": true, - "onload": true, - "onloadeddata": true, - "onloadedmetadata": true, - "onloadstart": true, - "onlostpointercapture": true, - "onmessage": true, - "onmessageerror": true, - "onmousedown": true, - "onmouseenter": true, - "onmouseleave": true, - "onmousemove": true, - "onmouseout": true, - "onmouseover": true, - "onmouseup": true, - "onmousewheel": true, - "onoffline": true, - "ononline": true, - "onpagehide": true, - "onpagereveal": true, - "onpageshow": true, - "onpageswap": true, - "onpaste": true, - "onpause": true, - "onplay": true, - "onplaying": true, - "onpointercancel": true, - "onpointerdown": true, - "onpointerenter": true, - "onpointerleave": true, - "onpointermove": true, - "onpointerout": true, - "onpointerover": true, - "onpointerrawupdate": true, - "onpointerup": true, - "onpopstate": true, - "onprogress": true, - "onratechange": true, - "onrejectionhandled": true, - "onreset": true, - "onresize": true, - "onscroll": true, - "onscrollend": true, - "onscrollsnapchange": true, - "onscrollsnapchanging": true, - "onsearch": true, - "onsecuritypolicyviolation": true, - "onseeked": true, - "onseeking": true, - "onselect": true, - "onselectionchange": true, - "onselectstart": true, - "onslotchange": true, - "onstalled": true, - "onstorage": true, - "onsubmit": true, - "onsuspend": true, - "ontimeupdate": true, - "ontoggle": true, - "ontransitioncancel": true, - "ontransitionend": true, - "ontransitionrun": true, - "ontransitionstart": true, - "onunhandledrejection": true, - "onunload": true, - "onvolumechange": true, - "onwaiting": true, - "onwheel": true, - "open": false, - "opener": false, - "Option": false, - "OrientationSensor": false, - "origin": false, - "originAgentCluster": false, - "OscillatorNode": false, - "OTPCredential": false, - "outerHeight": false, - "outerWidth": false, - "OverconstrainedError": false, - "PageRevealEvent": false, - "PageSwapEvent": false, - "PageTransitionEvent": false, - "pageXOffset": false, - "pageYOffset": false, - "PannerNode": false, - "parent": false, - "PasswordCredential": false, - "Path2D": false, - "PaymentAddress": false, - "PaymentManager": false, - "PaymentMethodChangeEvent": false, - "PaymentRequest": false, - "PaymentRequestUpdateEvent": false, - "PaymentResponse": false, - "performance": false, - "Performance": false, - "PerformanceElementTiming": false, - "PerformanceEntry": false, - "PerformanceEventTiming": false, - "PerformanceLongAnimationFrameTiming": false, - "PerformanceLongTaskTiming": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceNavigation": false, - "PerformanceNavigationTiming": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformancePaintTiming": false, - "PerformanceResourceTiming": false, - "PerformanceScriptTiming": false, - "PerformanceServerTiming": false, - "PerformanceTiming": false, - "PeriodicSyncManager": false, - "PeriodicWave": false, - "Permissions": false, - "PermissionStatus": false, - "PERSISTENT": false, - "personalbar": false, - "PictureInPictureEvent": false, - "PictureInPictureWindow": false, - "Plugin": false, - "PluginArray": false, - "PointerEvent": false, - "PopStateEvent": false, - "postMessage": false, - "Presentation": false, - "PresentationAvailability": false, - "PresentationConnection": false, - "PresentationConnectionAvailableEvent": false, - "PresentationConnectionCloseEvent": false, - "PresentationConnectionList": false, - "PresentationReceiver": false, - "PresentationRequest": false, - "PressureObserver": false, - "PressureRecord": false, - "print": false, - "ProcessingInstruction": false, - "Profiler": false, - "ProgressEvent": false, - "PromiseRejectionEvent": false, - "prompt": false, - "ProtectedAudience": false, - "PublicKeyCredential": false, - "PushManager": false, - "PushSubscription": false, - "PushSubscriptionOptions": false, - "queryLocalFonts": false, - "queueMicrotask": false, - "RadioNodeList": false, - "Range": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "registerProcessor": false, - "RelativeOrientationSensor": false, - "RemotePlayback": false, - "removeEventListener": false, - "reportError": false, - "ReportingObserver": false, - "Request": false, - "requestAnimationFrame": false, - "requestIdleCallback": false, - "resizeBy": false, - "ResizeObserver": false, - "ResizeObserverEntry": false, - "ResizeObserverSize": false, - "resizeTo": false, - "Response": false, - "RTCCertificate": false, - "RTCDataChannel": false, - "RTCDataChannelEvent": false, - "RTCDtlsTransport": false, - "RTCDTMFSender": false, - "RTCDTMFToneChangeEvent": false, - "RTCEncodedAudioFrame": false, - "RTCEncodedVideoFrame": false, - "RTCError": false, - "RTCErrorEvent": false, - "RTCIceCandidate": false, - "RTCIceTransport": false, - "RTCPeerConnection": false, - "RTCPeerConnectionIceErrorEvent": false, - "RTCPeerConnectionIceEvent": false, - "RTCRtpReceiver": false, - "RTCRtpScriptTransform": false, - "RTCRtpSender": false, - "RTCRtpTransceiver": false, - "RTCSctpTransport": false, - "RTCSessionDescription": false, - "RTCStatsReport": false, - "RTCTrackEvent": false, - "sampleRate": false, - "scheduler": false, - "Scheduler": false, - "Scheduling": false, - "screen": false, - "Screen": false, - "ScreenDetailed": false, - "ScreenDetails": false, - "screenLeft": false, - "ScreenOrientation": false, - "screenTop": false, - "screenX": false, - "screenY": false, - "ScriptProcessorNode": false, - "scroll": false, - "scrollbars": false, - "scrollBy": false, - "ScrollTimeline": false, - "scrollTo": false, - "scrollX": false, - "scrollY": false, - "SecurityPolicyViolationEvent": false, - "Selection": false, - "self": false, - "Sensor": false, - "SensorErrorEvent": false, - "Serial": false, - "SerialPort": false, - "ServiceWorker": false, - "ServiceWorkerContainer": false, - "ServiceWorkerRegistration": false, - "sessionStorage": false, - "setInterval": false, - "setTimeout": false, - "ShadowRoot": false, - "sharedStorage": false, - "SharedStorage": false, - "SharedStorageWorklet": false, - "SharedWorker": false, - "showDirectoryPicker": false, - "showOpenFilePicker": false, - "showSaveFilePicker": false, - "SnapEvent": false, - "SourceBuffer": false, - "SourceBufferList": false, - "speechSynthesis": false, - "SpeechSynthesis": false, - "SpeechSynthesisErrorEvent": false, - "SpeechSynthesisEvent": false, - "SpeechSynthesisUtterance": false, - "SpeechSynthesisVoice": false, - "StaticRange": false, - "status": false, - "statusbar": false, - "StereoPannerNode": false, - "stop": false, - "Storage": false, - "StorageBucket": false, - "StorageBucketManager": false, - "StorageEvent": false, - "StorageManager": false, - "structuredClone": false, - "styleMedia": false, - "StylePropertyMap": false, - "StylePropertyMapReadOnly": false, - "StyleSheet": false, - "StyleSheetList": false, - "SubmitEvent": false, - "SubtleCrypto": false, - "SVGAElement": false, - "SVGAngle": false, - "SVGAnimatedAngle": false, - "SVGAnimatedBoolean": false, - "SVGAnimatedEnumeration": false, - "SVGAnimatedInteger": false, - "SVGAnimatedLength": false, - "SVGAnimatedLengthList": false, - "SVGAnimatedNumber": false, - "SVGAnimatedNumberList": false, - "SVGAnimatedPreserveAspectRatio": false, - "SVGAnimatedRect": false, - "SVGAnimatedString": false, - "SVGAnimatedTransformList": false, - "SVGAnimateElement": false, - "SVGAnimateMotionElement": false, - "SVGAnimateTransformElement": false, - "SVGAnimationElement": false, - "SVGCircleElement": false, - "SVGClipPathElement": false, - "SVGComponentTransferFunctionElement": false, - "SVGDefsElement": false, - "SVGDescElement": false, - "SVGElement": false, - "SVGEllipseElement": false, - "SVGFEBlendElement": false, - "SVGFEColorMatrixElement": false, - "SVGFEComponentTransferElement": false, - "SVGFECompositeElement": false, - "SVGFEConvolveMatrixElement": false, - "SVGFEDiffuseLightingElement": false, - "SVGFEDisplacementMapElement": false, - "SVGFEDistantLightElement": false, - "SVGFEDropShadowElement": false, - "SVGFEFloodElement": false, - "SVGFEFuncAElement": false, - "SVGFEFuncBElement": false, - "SVGFEFuncGElement": false, - "SVGFEFuncRElement": false, - "SVGFEGaussianBlurElement": false, - "SVGFEImageElement": false, - "SVGFEMergeElement": false, - "SVGFEMergeNodeElement": false, - "SVGFEMorphologyElement": false, - "SVGFEOffsetElement": false, - "SVGFEPointLightElement": false, - "SVGFESpecularLightingElement": false, - "SVGFESpotLightElement": false, - "SVGFETileElement": false, - "SVGFETurbulenceElement": false, - "SVGFilterElement": false, - "SVGForeignObjectElement": false, - "SVGGElement": false, - "SVGGeometryElement": false, - "SVGGradientElement": false, - "SVGGraphicsElement": false, - "SVGImageElement": false, - "SVGLength": false, - "SVGLengthList": false, - "SVGLinearGradientElement": false, - "SVGLineElement": false, - "SVGMarkerElement": false, - "SVGMaskElement": false, - "SVGMatrix": false, - "SVGMetadataElement": false, - "SVGMPathElement": false, - "SVGNumber": false, - "SVGNumberList": false, - "SVGPathElement": false, - "SVGPatternElement": false, - "SVGPoint": false, - "SVGPointList": false, - "SVGPolygonElement": false, - "SVGPolylineElement": false, - "SVGPreserveAspectRatio": false, - "SVGRadialGradientElement": false, - "SVGRect": false, - "SVGRectElement": false, - "SVGScriptElement": false, - "SVGSetElement": false, - "SVGStopElement": false, - "SVGStringList": false, - "SVGStyleElement": false, - "SVGSVGElement": false, - "SVGSwitchElement": false, - "SVGSymbolElement": false, - "SVGTextContentElement": false, - "SVGTextElement": false, - "SVGTextPathElement": false, - "SVGTextPositioningElement": false, - "SVGTitleElement": false, - "SVGTransform": false, - "SVGTransformList": false, - "SVGTSpanElement": false, - "SVGUnitTypes": false, - "SVGUseElement": false, - "SVGViewElement": false, - "SyncManager": false, - "TaskAttributionTiming": false, - "TaskController": false, - "TaskPriorityChangeEvent": false, - "TaskSignal": false, - "TEMPORARY": false, - "Text": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TextEvent": false, - "TextFormat": false, - "TextFormatUpdateEvent": false, - "TextMetrics": false, - "TextTrack": false, - "TextTrackCue": false, - "TextTrackCueList": false, - "TextTrackList": false, - "TextUpdateEvent": false, - "TimeEvent": false, - "TimeRanges": false, - "ToggleEvent": false, - "toolbar": false, - "top": false, - "Touch": false, - "TouchEvent": false, - "TouchList": false, - "TrackEvent": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "TransitionEvent": false, - "TreeWalker": false, - "TrustedHTML": false, - "TrustedScript": false, - "TrustedScriptURL": false, - "TrustedTypePolicy": false, - "TrustedTypePolicyFactory": false, - "trustedTypes": false, - "UIEvent": false, - "URL": false, - "URLPattern": false, - "URLSearchParams": false, - "USB": false, - "USBAlternateInterface": false, - "USBConfiguration": false, - "USBConnectionEvent": false, - "USBDevice": false, - "USBEndpoint": false, - "USBInterface": false, - "USBInTransferResult": false, - "USBIsochronousInTransferPacket": false, - "USBIsochronousInTransferResult": false, - "USBIsochronousOutTransferPacket": false, - "USBIsochronousOutTransferResult": false, - "USBOutTransferResult": false, - "UserActivation": false, - "ValidityState": false, - "VideoColorSpace": false, - "VideoDecoder": false, - "VideoEncoder": false, - "VideoFrame": false, - "VideoPlaybackQuality": false, - "ViewTimeline": false, - "ViewTransition": false, - "ViewTransitionTypeSet": false, - "VirtualKeyboard": false, - "VirtualKeyboardGeometryChangeEvent": false, - "VisibilityStateEntry": false, - "visualViewport": false, - "VisualViewport": false, - "VTTCue": false, - "VTTRegion": false, - "WakeLock": false, - "WakeLockSentinel": false, - "WaveShaperNode": false, - "WebAssembly": false, - "WebGL2RenderingContext": false, - "WebGLActiveInfo": false, - "WebGLBuffer": false, - "WebGLContextEvent": false, - "WebGLFramebuffer": false, - "WebGLObject": false, - "WebGLProgram": false, - "WebGLQuery": false, - "WebGLRenderbuffer": false, - "WebGLRenderingContext": false, - "WebGLSampler": false, - "WebGLShader": false, - "WebGLShaderPrecisionFormat": false, - "WebGLSync": false, - "WebGLTexture": false, - "WebGLTransformFeedback": false, - "WebGLUniformLocation": false, - "WebGLVertexArrayObject": false, - "WebSocket": false, - "WebSocketError": false, - "WebSocketStream": false, - "WebTransport": false, - "WebTransportBidirectionalStream": false, - "WebTransportDatagramDuplexStream": false, - "WebTransportError": false, - "WebTransportReceiveStream": false, - "WebTransportSendStream": false, - "WGSLLanguageFeatures": false, - "WheelEvent": false, - "window": false, - "Window": false, - "WindowControlsOverlay": false, - "WindowControlsOverlayGeometryChangeEvent": false, - "Worker": false, - "Worklet": false, - "WorkletGlobalScope": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false, - "XMLDocument": false, - "XMLHttpRequest": false, - "XMLHttpRequestEventTarget": false, - "XMLHttpRequestUpload": false, - "XMLSerializer": false, - "XPathEvaluator": false, - "XPathExpression": false, - "XPathResult": false, - "XRAnchor": false, - "XRAnchorSet": false, - "XRBoundedReferenceSpace": false, - "XRCamera": false, - "XRCPUDepthInformation": false, - "XRDepthInformation": false, - "XRDOMOverlayState": false, - "XRFrame": false, - "XRHand": false, - "XRHitTestResult": false, - "XRHitTestSource": false, - "XRInputSource": false, - "XRInputSourceArray": false, - "XRInputSourceEvent": false, - "XRInputSourcesChangeEvent": false, - "XRJointPose": false, - "XRJointSpace": false, - "XRLayer": false, - "XRLightEstimate": false, - "XRLightProbe": false, - "XRPose": false, - "XRRay": false, - "XRReferenceSpace": false, - "XRReferenceSpaceEvent": false, - "XRRenderState": false, - "XRRigidTransform": false, - "XRSession": false, - "XRSessionEvent": false, - "XRSpace": false, - "XRSystem": false, - "XRTransientInputHitTestResult": false, - "XRTransientInputHitTestSource": false, - "XRView": false, - "XRViewerPose": false, - "XRViewport": false, - "XRWebGLBinding": false, - "XRWebGLDepthInformation": false, - "XRWebGLLayer": false, - "XSLTProcessor": false, - "__dirname": false, - "__filename": false, - "Buffer": false, - "clearImmediate": false, - "exports": true, - "global": false, - "module": false, - "process": false, - "require": false, - "setImmediate": false - } - } -} diff --git a/03_source/frontend/src/actions/party-order.ts b/03_source/frontend/src/actions/party-order.ts index 662e519..2aa0127 100644 --- a/03_source/frontend/src/actions/party-order.ts +++ b/03_source/frontend/src/actions/party-order.ts @@ -1,10 +1,10 @@ -// src/actions/order.ts +// src/actions/party-order.ts +// import { useMemo } from 'react'; import axiosInstance, { endpoints, fetcher } from 'src/lib/axios'; -import type { IOrderItem } from 'src/types/party-order'; -import type { IProductItem } from 'src/types/product'; +import type { IPartyOrderItem } from 'src/types/party-order'; import type { SWRConfiguration } from 'swr'; -import useSWR from 'swr'; +import useSWR, { mutate } from 'swr'; // ---------------------------------------------------------------------- @@ -16,14 +16,14 @@ const swrOptions: SWRConfiguration = { // ---------------------------------------------------------------------- -type OrdersData = { - partyOrders: IOrderItem[]; +type PartyOrdersData = { + partyOrders: IPartyOrderItem[]; }; export function useGetPartyOrders() { const url = endpoints.partyOrder.list; - const { data, isLoading, error, isValidating, mutate } = useSWR( + const { data, isLoading, error, isValidating } = useSWR( url, fetcher, swrOptions @@ -31,14 +31,13 @@ export function useGetPartyOrders() { const memoizedValue = useMemo( () => ({ - orders: data?.partyOrders || [], - ordersLoading: isLoading, - ordersError: error, - ordersValidating: isValidating, - ordersEmpty: !isLoading && !isValidating && !data?.partyOrders.length, - mutate, + partyOrders: data?.partyOrders || [], + partyOrdersLoading: isLoading, + partyOrdersError: error, + partyOrdersValidating: isValidating, + partyOrdersEmpty: !isLoading && !isValidating && !data?.partyOrders.length, }), - [data?.partyOrders, error, isLoading, isValidating, mutate] + [data?.partyOrders, error, isLoading, isValidating] ); return memoizedValue; @@ -46,23 +45,24 @@ export function useGetPartyOrders() { // ---------------------------------------------------------------------- -type OrderData = { - order: IOrderItem; +type PartyOrderData = { + partyOrder: IPartyOrderItem; }; -export function useGetOrder(orderId: string) { - const url = orderId ? [endpoints.order.details, { params: { orderId } }] : ''; +export function useGetPartyOrder(partyOrderId: string) { + const url = partyOrderId ? [endpoints.partyOrder.details, { params: { partyOrderId } }] : ''; - const { data, isLoading, error, isValidating } = useSWR(url, fetcher, swrOptions); + const { data, isLoading, error, isValidating } = useSWR(url, fetcher, swrOptions); const memoizedValue = useMemo( () => ({ - order: data?.order, - orderLoading: isLoading, - orderError: error, - orderValidating: isValidating, + partyOrder: data?.partyOrder, + partyOrderLoading: isLoading, + partyOrderError: error, + partyOrderValidating: isValidating, + mutate, }), - [data?.order, error, isLoading, isValidating] + [data?.partyOrder, error, isLoading, isValidating] ); return memoizedValue; @@ -71,7 +71,7 @@ export function useGetOrder(orderId: string) { // ---------------------------------------------------------------------- type SearchResultsData = { - results: IProductItem[]; + results: IPartyOrderItem[]; }; export function useSearchProducts(query: string) { @@ -98,129 +98,112 @@ export function useSearchProducts(query: string) { // ---------------------------------------------------------------------- -type SaveOrderData = { - name: string; - city: string; - role: string; - email: string; - state: string; - status: string; - address: string; - country: string; - zipCode: string; - company: string; - avatarUrl: string; - phoneNumber: string; - isVerified: boolean; - // - ordername: string; - password: string; -}; +export async function createPartyOrder(partyOrderData: IPartyOrderItem) { + /** + * Work on server + */ + const data = { partyOrderData }; + const { + data: { id }, + } = await axiosInstance.post(endpoints.partyOrder.create, data); -export async function saveOrder(orderId: string, saveOrderData: SaveOrderData) { - // const url = orderId ? [endpoints.order.details, { params: { orderId } }] : ''; + /** + * Work in local + */ + mutate( + endpoints.partyOrder.list, + (currentData: any) => { + const currentPartyOrders: IPartyOrderItem[] = currentData?.partyOrders; - const res = await axiosInstance.post( - // - `http://localhost:7272/api/order/saveOrder?orderId=${orderId}`, - { - data: saveOrderData, - } + const partyOrders = [...currentPartyOrders, { ...partyOrderData, id }]; + + return { ...currentData, partyOrders }; + }, + false ); - - return res; -} - -export async function uploadOrderImage(saveOrderData: SaveOrderData) { - console.log('uploadOrderImage ?'); - // const url = orderId ? [endpoints.order.details, { params: { orderId } }] : ''; - - const res = await axiosInstance.get('http://localhost:7272/api/product/helloworld'); - - return res; } // ---------------------------------------------------------------------- -type CreateOrderData = { - name: string; - city: string; - role: string; - email: string; - state: string; - status: string; - address: string; - country: string; - zipCode: string; - company: string; - avatarUrl: string; - phoneNumber: string; - isVerified: boolean; - // - ordername: string; - password: string; -}; +export async function updatePartyOrder(partyOrderData: Partial) { + /** + * Work on server + */ + const data = { partyOrderData }; + await axiosInstance.put(endpoints.partyOrder.update, data); -export async function createOrder(createOrderData: CreateOrderData) { - console.log('create product ?'); - // const url = productId ? [endpoints.product.details, { params: { productId } }] : ''; + /** + * Work in local + */ - const res = await axiosInstance.post('http://localhost:7272/api/order/createOrder', { - data: createOrderData, - }); + mutate( + endpoints.partyOrder.list, + (currentData: any) => { + const currentPartyOrders: IPartyOrderItem[] = currentData?.partyOrders; - return res; + const partyOrders = currentPartyOrders.map((partyOrder) => + partyOrder.id === partyOrderData.id ? { ...partyOrder, ...partyOrderData } : partyOrder + ); + + return { ...currentData, partyOrders }; + }, + false + ); } // ---------------------------------------------------------------------- -type DeleteOrderResponse = { - success: boolean; - message?: string; -}; +export async function deletePartyOrder(partyOrderId: string) { + /** + * Work on server + */ + const data = { partyOrderId }; + await axiosInstance.patch(endpoints.partyOrder.delete, data); -export async function deletePartyOrder(orderId: string): Promise { - const url = `http://localhost:7272/api/order/deleteOrder?orderId=${orderId}`; + /** + * Work in local + */ - try { - const res = await axiosInstance.delete(url); + mutate( + endpoints.partyOrder.list, + (currentData: any) => { + const currentProducts: IPartyOrderItem[] = currentData?.partyOrders; - return { - success: true, - message: 'Order deleted successfully', - }; - } catch (error) { - return { - success: false, - message: error instanceof Error ? error.message : 'Failed to delete product', - }; - } + const partyOrders = currentProducts.filter((partyOrder) => partyOrder.id !== partyOrderId); + + return { ...currentData, partyOrders }; + }, + false + ); } // ---------------------------------------------------------------------- -type ChangeStatusResponse = { - success: boolean; - message?: string; -}; +// TODO: implement partyOrder changeStatus with url below +// const url = endpoints.order.changeStatus(orderId); +export async function changeStatus(partyOrderData: any, dummy: any) { + return true; + // /** + // * Work on server + // */ + // const data = { partyOrderData }; + // await axiosInstance.put(endpoints.partyOrder.update, data); -export async function changeStatus( - orderId: string, - newOrderStatus: string -): Promise { - const url = endpoints.order.changeStatus(orderId); + // /** + // * Work in local + // */ - try { - const res = await axiosInstance.put(url, { data: { status: newOrderStatus } }); + // mutate( + // endpoints.partyOrder.list, + // (currentData: any) => { + // const currentPartyOrders: IPartyOrderItem[] = currentData?.partyOrders; - return { - success: true, - message: 'status updated successfully', - }; - } catch (error) { - return { - success: false, - message: error instanceof Error ? error.message : 'Failed to delete product', - }; - } + // const partyOrders = currentPartyOrders.map((partyOrder) => + // partyOrder.id === partyOrderData.id ? { ...partyOrder, ...partyOrderData } : partyOrder + // ); + + // return { ...currentData, partyOrders }; + // }, + // false + // ); } diff --git a/03_source/frontend/src/lib/axios.ts b/03_source/frontend/src/lib/axios.ts index 922153a..538d394 100644 --- a/03_source/frontend/src/lib/axios.ts +++ b/03_source/frontend/src/lib/axios.ts @@ -96,6 +96,8 @@ export const endpoints = { delete: '/api/party-event/delete', }, partyOrder: { + create: '/api/party-order/create', + delete: '/api/party-order/delete', list: '/api/party-order/list', profile: '/api/party-order/profile', update: '/api/party-order/update', diff --git a/03_source/frontend/src/sections/party-order/party-order-table-filters-result.tsx b/03_source/frontend/src/sections/party-order/party-order-table-filters-result.tsx index 622ba92..d3e796a 100644 --- a/03_source/frontend/src/sections/party-order/party-order-table-filters-result.tsx +++ b/03_source/frontend/src/sections/party-order/party-order-table-filters-result.tsx @@ -3,14 +3,14 @@ import type { UseSetStateReturn } from 'minimal-shared/hooks'; import { useCallback } from 'react'; import type { FiltersResultProps } from 'src/components/filters-result'; import { chipProps, FiltersBlock, FiltersResult } from 'src/components/filters-result'; -import type { IOrderTableFilters } from 'src/types/party-order'; +import type { IPartyOrderTableFilters } from 'src/types/party-order'; import { fDateRangeShortLabel } from 'src/utils/format-time'; // ---------------------------------------------------------------------- type Props = FiltersResultProps & { onResetPage: () => void; - filters: UseSetStateReturn; + filters: UseSetStateReturn; }; export function PartyOrderTableFiltersResult({ filters, totalResults, onResetPage, sx }: Props) { diff --git a/03_source/frontend/src/sections/party-order/party-order-table-row.tsx b/03_source/frontend/src/sections/party-order/party-order-table-row.tsx index b8e190e..1935835 100644 --- a/03_source/frontend/src/sections/party-order/party-order-table-row.tsx +++ b/03_source/frontend/src/sections/party-order/party-order-table-row.tsx @@ -20,14 +20,14 @@ import { CustomPopover } from 'src/components/custom-popover'; import { Iconify } from 'src/components/iconify'; import { Label } from 'src/components/label'; import { RouterLink } from 'src/routes/components'; -import type { IOrderItem } from 'src/types/party-order'; +import type { IPartyOrderItem } from 'src/types/party-order'; import { fCurrency } from 'src/utils/format-number'; import { fDate, fTime } from 'src/utils/format-time'; // ---------------------------------------------------------------------- type Props = { - row: IOrderItem; + row: IPartyOrderItem; selected: boolean; detailsHref: string; onSelectRow: () => void; diff --git a/03_source/frontend/src/sections/party-order/party-order-table-toolbar.tsx b/03_source/frontend/src/sections/party-order/party-order-table-toolbar.tsx index 22d3ee6..0fd9941 100644 --- a/03_source/frontend/src/sections/party-order/party-order-table-toolbar.tsx +++ b/03_source/frontend/src/sections/party-order/party-order-table-toolbar.tsx @@ -13,14 +13,14 @@ import { useTranslation } from 'react-i18next'; import { CustomPopover } from 'src/components/custom-popover'; import { Iconify } from 'src/components/iconify'; import type { IDatePickerControl } from 'src/types/common'; -import type { IOrderTableFilters } from 'src/types/party-order'; +import type { IPartyOrderTableFilters } from 'src/types/party-order'; // ---------------------------------------------------------------------- type Props = { dateError: boolean; onResetPage: () => void; - filters: UseSetStateReturn; + filters: UseSetStateReturn; }; export function PartyOrderTableToolbar({ filters, onResetPage, dateError }: Props) { diff --git a/03_source/frontend/src/sections/party-order/view/party-order-details-view.tsx b/03_source/frontend/src/sections/party-order/view/party-order-details-view.tsx index 7ac3d71..04bcbb9 100644 --- a/03_source/frontend/src/sections/party-order/view/party-order-details-view.tsx +++ b/03_source/frontend/src/sections/party-order/view/party-order-details-view.tsx @@ -12,7 +12,7 @@ import { changeStatus } from 'src/actions/party-order'; import { DashboardContent } from 'src/layouts/dashboard'; import { useTranslate } from 'src/locales'; import { paths } from 'src/routes/paths'; -import type { IOrderItem } from 'src/types/party-order'; +import type { IPartyOrderItem } from 'src/types/party-order'; import { OrderDetailsCustomer } from '../party-order-details-customer'; import { OrderDetailsDelivery } from '../party-order-details-delivery'; import { OrderDetailsHistory } from '../party-order-details-history'; @@ -24,7 +24,7 @@ import { OrderDetailsToolbar } from '../party-order-details-toolbar'; // ---------------------------------------------------------------------- type Props = { - order: IOrderItem; + order: IPartyOrderItem; }; export function OrderDetailsView({ order }: Props) { diff --git a/03_source/frontend/src/sections/party-order/view/party-order-list-view.tsx b/03_source/frontend/src/sections/party-order/view/party-order-list-view.tsx index 79d0078..2133fe3 100644 --- a/03_source/frontend/src/sections/party-order/view/party-order-list-view.tsx +++ b/03_source/frontend/src/sections/party-order/view/party-order-list-view.tsx @@ -36,7 +36,7 @@ import { import { DashboardContent } from 'src/layouts/dashboard'; import { useRouter } from 'src/routes/hooks'; import { paths } from 'src/routes/paths'; -import type { IOrderItem, IOrderTableFilters } from 'src/types/party-order'; +import type { IPartyOrderItem, IPartyOrderTableFilters } from 'src/types/party-order'; import { fIsAfter, fIsBetween } from 'src/utils/format-time'; import { PartyOrderTableFiltersResult } from '../party-order-table-filters-result'; import { PartyOrderTableRow } from '../party-order-table-row'; @@ -50,7 +50,6 @@ const STATUS_OPTIONS = [{ value: 'all', label: 'All' }, ...PARTY_ORDER_STATUS_OP export function PartyOrderListView() { const { t } = useTranslation(); - const router = useRouter(); const TABLE_HEAD: TableHeadCellProps[] = [ { id: 'orderNumber', label: t('Order'), width: 88 }, @@ -62,19 +61,19 @@ export function PartyOrderListView() { { id: '', width: 88 }, ]; - const { orders, mutate, ordersLoading } = useGetPartyOrders(); + const { partyOrders, partyOrdersLoading } = useGetPartyOrders(); const table = useTable({ defaultOrderBy: 'orderNumber' }); const confirmDialog = useBoolean(); - const [tableData, setTableData] = useState([]); + const [tableData, setTableData] = useState([]); useEffect(() => { - setTableData(orders); - }, [orders]); + setTableData(partyOrders); + }, [partyOrders]); - const filters = useSetState({ + const filters = useSetState({ name: '', status: 'all', startDate: null, @@ -107,7 +106,6 @@ export function PartyOrderListView() { try { await deletePartyOrder(id); toast.success('Delete success!'); - mutate(); } catch (error) { console.error(error); toast.error('Delete failed!'); @@ -117,7 +115,7 @@ export function PartyOrderListView() { // setTableData(deleteRow); // table.onUpdatePageDeleteRow(dataInPage.length); }, - [table, tableData, mutate] + [table, tableData] ); const handleDeleteRows = useCallback(() => { @@ -163,12 +161,9 @@ export function PartyOrderListView() { /> ); - useEffect(() => { - mutate(); - }, []); - - if (!orders) return <>loading; - if (ordersLoading) return <>loading; + // TODO: remove below loading screen as mutate is not used + if (!partyOrders) return <>loading; + if (partyOrdersLoading) return <>loading; return ( <> @@ -324,8 +319,8 @@ export function PartyOrderListView() { type ApplyFilterProps = { dateError: boolean; - inputData: IOrderItem[]; - filters: IOrderTableFilters; + inputData: IPartyOrderItem[]; + filters: IPartyOrderTableFilters; comparator: (a: any, b: any) => number; }; diff --git a/03_source/frontend/src/types/party-order.ts b/03_source/frontend/src/types/party-order.ts index 943e5f3..c431c6a 100644 --- a/03_source/frontend/src/types/party-order.ts +++ b/03_source/frontend/src/types/party-order.ts @@ -2,7 +2,7 @@ import type { IDatePickerControl, IDateValue } from './common'; // ---------------------------------------------------------------------- -export type IOrderTableFilters = { +export type IPartyOrderTableFilters = { name: string; status: string; endDate: IDatePickerControl; @@ -50,7 +50,7 @@ export type IOrderProductItem = { quantity: number; }; -export type IOrderItem = { +export type IPartyOrderItem = { id: string; createdAt: IDateValue; //