🔧 웹훅 URL을 HTTPS로 수정
Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled

- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경
- Nginx 리버스 프록시 설정 파일 추가
- 배포 가이드 업데이트
This commit is contained in:
2025-10-01 01:47:51 +09:00
parent f331b52e64
commit 83b162d2bd
713 changed files with 98449 additions and 38378 deletions

View File

@@ -0,0 +1,862 @@
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
import { defineComponent, ref, mergeProps, unref, withCtx, createVNode, createTextVNode, toDisplayString, useId, createBlock, createCommentVNode, openBlock, withModifiers, computed, toRef, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
import { l as logo } from './logo-C2NYPRdy.mjs';
import { a as authV1TopShape, b as authV1BottomShape } from './auth-v1-top-shape-smMuVKoE.mjs';
import { aI as useRouter$1, a6 as VImg, B as VCard, a7 as VCardItem, C as VCardText, g as genericComponent, D as VBtn, aJ as useCookie, p as propsFactory, n as useProxiedModel, F as provideTheme, ah as useVariant, ai as useDensity, f as useDimension, aj as useElevation, aE as useLocation, aF as usePosition, ak as useRounded, at as useTextColor, l as useLocale, ao as genOverlays, s as VIcon, y as VDefaultsProvider, aD as createSimpleFunctional, J as makeVariantProps, K as makeThemeProps, L as makeTagProps, N as makeRoundedProps, aG as makePositionProps, aH as makeLocationProps, O as makeElevationProps, k as makeDimensionProps, P as makeDensityProps, m as makeComponentProps, I as IconValue } from './server.mjs';
import { V as VForm, a as VTextField } from './VTextField-Bxu4ONGD.mjs';
import { V as VRow, a as VCol } from './VRow-MQIguEmB.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
import './index-BNHdF426.mjs';
const VAlertTitle = createSimpleFunctional("v-alert-title");
const allowedTypes = ["success", "info", "warning", "error"];
const makeVAlertProps = propsFactory({
border: {
type: [Boolean, String],
validator: (val) => {
return typeof val === "boolean" || ["top", "end", "bottom", "start"].includes(val);
}
},
borderColor: String,
closable: Boolean,
closeIcon: {
type: IconValue,
default: "$close"
},
closeLabel: {
type: String,
default: "$vuetify.close"
},
icon: {
type: [Boolean, String, Function, Object],
default: null
},
modelValue: {
type: Boolean,
default: true
},
prominent: Boolean,
title: String,
text: String,
type: {
type: String,
validator: (val) => allowedTypes.includes(val)
},
...makeComponentProps(),
...makeDensityProps(),
...makeDimensionProps(),
...makeElevationProps(),
...makeLocationProps(),
...makePositionProps(),
...makeRoundedProps(),
...makeTagProps(),
...makeThemeProps(),
...makeVariantProps({
variant: "flat"
})
}, "VAlert");
const VAlert = genericComponent()({
name: "VAlert",
props: makeVAlertProps(),
emits: {
"click:close": (e) => true,
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
emit,
slots
} = _ref;
const isActive = useProxiedModel(props, "modelValue");
const icon = computed(() => {
var _a;
if (props.icon === false) return void 0;
if (!props.type) return props.icon;
return (_a = props.icon) != null ? _a : `$${props.type}`;
});
const variantProps = computed(() => {
var _a;
return {
color: (_a = props.color) != null ? _a : props.type,
variant: props.variant
};
});
const {
themeClasses
} = provideTheme(props);
const {
colorClasses,
colorStyles,
variantClasses
} = useVariant(variantProps);
const {
densityClasses
} = useDensity(props);
const {
dimensionStyles
} = useDimension(props);
const {
elevationClasses
} = useElevation(props);
const {
locationStyles
} = useLocation(props);
const {
positionClasses
} = usePosition(props);
const {
roundedClasses
} = useRounded(props);
const {
textColorClasses,
textColorStyles
} = useTextColor(toRef(props, "borderColor"));
const {
t
} = useLocale();
const closeProps = computed(() => ({
"aria-label": t(props.closeLabel),
onClick(e) {
isActive.value = false;
emit("click:close", e);
}
}));
return () => {
const hasPrepend = !!(slots.prepend || icon.value);
const hasTitle = !!(slots.title || props.title);
const hasClose = !!(slots.close || props.closable);
return isActive.value && createVNode(props.tag, {
"class": ["v-alert", props.border && {
"v-alert--border": !!props.border,
[`v-alert--border-${props.border === true ? "start" : props.border}`]: true
}, {
"v-alert--prominent": props.prominent
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
"role": "alert"
}, {
default: () => {
var _a2;
var _a, _b;
return [genOverlays(false, "v-alert"), props.border && createVNode("div", {
"key": "border",
"class": ["v-alert__border", textColorClasses.value],
"style": textColorStyles.value
}, null), hasPrepend && createVNode("div", {
"key": "prepend",
"class": "v-alert__prepend"
}, [!slots.prepend ? createVNode(VIcon, {
"key": "prepend-icon",
"density": props.density,
"icon": icon.value,
"size": props.prominent ? 44 : 28
}, null) : createVNode(VDefaultsProvider, {
"key": "prepend-defaults",
"disabled": !icon.value,
"defaults": {
VIcon: {
density: props.density,
icon: icon.value,
size: props.prominent ? 44 : 28
}
}
}, slots.prepend)]), createVNode("div", {
"class": "v-alert__content"
}, [hasTitle && createVNode(VAlertTitle, {
"key": "title"
}, {
default: () => {
var _a3;
var _a22;
return [(_a3 = (_a22 = slots.title) == null ? void 0 : _a22.call(slots)) != null ? _a3 : props.title];
}
}), (_a2 = (_a = slots.text) == null ? void 0 : _a.call(slots)) != null ? _a2 : props.text, (_b = slots.default) == null ? void 0 : _b.call(slots)]), slots.append && createVNode("div", {
"key": "append",
"class": "v-alert__append"
}, [slots.append()]), hasClose && createVNode("div", {
"key": "close",
"class": "v-alert__close"
}, [!slots.close ? createVNode(VBtn, mergeProps({
"key": "close-btn",
"icon": props.closeIcon,
"size": "x-small",
"variant": "text"
}, closeProps.value), null) : createVNode(VDefaultsProvider, {
"key": "close-defaults",
"defaults": {
VBtn: {
icon: props.closeIcon,
size: "x-small",
variant: "text"
}
}
}, {
default: () => {
var _a22;
return [(_a22 = slots.close) == null ? void 0 : _a22.call(slots, {
props: closeProps.value
})];
}
})])];
}
});
};
}
});
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "login",
__ssrInlineRender: true,
setup(__props) {
const form = ref({
user_id: "",
password: "",
remember: false
});
const isPasswordVisible = ref(false);
const isLoading = ref(false);
const errorMessage = ref("");
const router = useRouter$1();
const handleLogin = async () => {
var _a;
if (!form.value.user_id || !form.value.password) {
errorMessage.value = "\uC544\uC774\uB514\uC640 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694.";
return;
}
isLoading.value = true;
errorMessage.value = "";
try {
const response = await $fetch("/api/auth/login", {
method: "POST",
body: {
user_id: form.value.user_id,
password: form.value.password
}
});
if (response.success) {
const token = useCookie("auth-token", {
maxAge: 60 * 60 * 24,
// 24시간
secure: true,
sameSite: "strict"
});
token.value = response.token;
const user = useCookie("user-info", {
maxAge: 60 * 60 * 24,
secure: true,
sameSite: "strict"
});
user.value = JSON.stringify(response.user);
await router.push("/dashboard");
} else {
errorMessage.value = response.message || "\uB85C\uADF8\uC778\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.";
}
} catch (error) {
console.error("Login error:", error);
console.error("Error details:", {
statusCode: error.statusCode,
statusMessage: error.statusMessage,
data: error.data
});
errorMessage.value = ((_a = error.data) == null ? void 0 : _a.statusMessage) || error.statusMessage || "\uB85C\uADF8\uC778 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.";
} finally {
isLoading.value = false;
}
};
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(mergeProps({ class: "auth-wrapper d-flex align-center justify-center pa-4" }, _attrs))}><div class="position-relative my-sm-16">`);
_push(ssrRenderComponent(VImg, {
src: unref(authV1TopShape),
class: "text-primary auth-v1-top-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VImg, {
src: unref(authV1BottomShape),
class: "text-primary auth-v1-bottom-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VCard, {
class: ["auth-card", _ctx.$vuetify.display.smAndUp ? "pa-6" : "pa-0"],
"max-width": "460"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VCardItem, { class: "justify-center" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
var _a;
if (_push4) {
_push4(`<div class="d-flex"${_scopeId3}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="app-logo-title"${_scopeId3}> sneat </h1>`);
} else {
return [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`<h4 class="text-h4 mb-1"${_scopeId2}> \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} </h4><p class="mb-0"${_scopeId2}> \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 </p>`);
} else {
return [
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VForm, { onSubmit: handleLogin }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VRow, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
if (unref(errorMessage)) {
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(`${ssrInterpolate(unref(errorMessage))}`);
} else {
return [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
} else {
_push5(`<!---->`);
}
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(` \uB85C\uADF8\uC778 `);
} else {
return [
createTextVNode(" \uB85C\uADF8\uC778 ")
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
} else {
return [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
];
}
}),
_: 1
}, _parent4, _scopeId3));
} else {
return [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VForm, {
onSubmit: withModifiers(handleLogin, ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(VCardItem, { class: "justify-center" }, {
default: withCtx(() => [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode(VForm, {
onSubmit: withModifiers(handleLogin, ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
_push(`</div></div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/login.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };