diff --git a/frontend/package.json b/frontend/package.json
index 07a6a28da..5e62aac10 100755
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -48,6 +48,7 @@
"portal-vue": "^3.0.0",
"qrcanvas-vue": "3",
"regenerator-runtime": "^0.13.7",
+ "tua-body-scroll-lock": "^1.5.1",
"uuid": "^9.0.0",
"vee-validate": "^4.13.2",
"vite": "3.2.10",
diff --git a/frontend/src/App.spec.js b/frontend/src/App.spec.js
index 183aa1f1c..e04b483be 100644
--- a/frontend/src/App.spec.js
+++ b/frontend/src/App.spec.js
@@ -1,68 +1,5 @@
-// import { shallowMount, RouterLinkStub } from '@vue/test-utils'
-// import App from './App'
-//
-// const localVue = global.localVue
-// const mockStoreCommit = jest.fn()
-//
-// const stubs = {
-// RouterLink: RouterLinkStub,
-// RouterView: true,
-// }
-//
-// describe('App', () => {
-// const mocks = {
-// $i18n: {
-// locale: 'en',
-// },
-// $t: jest.fn((t) => t),
-// $store: {
-// commit: mockStoreCommit,
-// state: {
-// token: null,
-// },
-// },
-// $route: {
-// meta: {
-// requiresAuth: false,
-// },
-// params: {},
-// },
-// }
-//
-// let wrapper
-//
-// const Wrapper = () => {
-// return shallowMount(App, { localVue, mocks, stubs })
-// }
-//
-// describe('mount', () => {
-// beforeEach(() => {
-// wrapper = Wrapper()
-// })
-//
-// it('renders the App', () => {
-// expect(wrapper.find('#app').exists()).toBe(true)
-// })
-//
-// it('has a component AuthLayout', () => {
-// expect(wrapper.findComponent({ name: 'AuthLayout' }).exists()).toBe(true)
-// })
-//
-// describe('route requires authorization', () => {
-// beforeEach(async () => {
-// mocks.$route.meta.requiresAuth = true
-// wrapper = Wrapper()
-// })
-//
-// it('has a component DashboardLayout', () => {
-// expect(wrapper.findComponent({ name: 'DashboardLayout' }).exists()).toBe(true)
-// })
-// })
-// })
-// })
-
import { shallowMount } from '@vue/test-utils'
-import { describe, it, expect, beforeEach, vi } from 'vitest'
+import { describe, it, expect, beforeEach } from 'vitest'
import App from './App'
import DashboardLayout from '@/layouts/DashboardLayout'
import AuthLayout from '@/layouts/AuthLayout'
diff --git a/frontend/src/assets/scss/gradido-template.scss b/frontend/src/assets/scss/gradido-template.scss
index 8701f7d98..85d2a783c 100644
--- a/frontend/src/assets/scss/gradido-template.scss
+++ b/frontend/src/assets/scss/gradido-template.scss
@@ -345,3 +345,15 @@ a:hover,
.gdd-toaster-body {
color: rgb(255 255 255);
}
+
+.gdd-toaster-body-darken {
+ color: #2c2c2c;
+}
+
+input.rounded-input {
+ border-radius: 17px;
+}
+
+.fs-7 {
+ font-size: 14px !important;
+}
diff --git a/frontend/src/components/DecayInformations/CollapseLinksList.vue b/frontend/src/components/DecayInformations/CollapseLinksList.vue
index 73f1963fa..fcd58dbb0 100644
--- a/frontend/src/components/DecayInformations/CollapseLinksList.vue
+++ b/frontend/src/components/DecayInformations/CollapseLinksList.vue
@@ -13,7 +13,7 @@
{
})
it('has the placeholder "input-field-placeholder"', () => {
- expect(wrapper.find('input').attributes('placeholder')).toBe('input-field-placeholder')
+ expect(wrapper.find('input').attributes('placeholder')).toBe('form.email')
})
it('has the label "input-field-label"', () => {
- expect(wrapper.find('label').text()).toBe('input-field-label')
+ expect(wrapper.find('label').text()).toBe('form.email')
})
it('has the label for "input-field-name-input-field"', () => {
diff --git a/frontend/src/components/Inputs/InputEmail.vue b/frontend/src/components/Inputs/InputEmail.vue
index 89a147bf2..935a8510b 100644
--- a/frontend/src/components/Inputs/InputEmail.vue
+++ b/frontend/src/components/Inputs/InputEmail.vue
@@ -11,6 +11,7 @@
:placeholder="defaultTranslations.placeholder"
type="email"
trim
+ class="rounded-input"
:class="$route.path === '/send' ? 'bg-248' : ''"
:disabled="disabled"
autocomplete="off"
@@ -33,14 +34,6 @@ const props = defineProps({
type: String,
default: 'email',
},
- label: {
- type: String,
- default: 'Email',
- },
- placeholder: {
- type: String,
- default: 'Email',
- },
disabled: {
type: Boolean,
default: false,
@@ -54,8 +47,8 @@ const { value, errorMessage, validate, meta } = useField(() => props.name, 'requ
const { t } = useI18n()
const defaultTranslations = computed(() => ({
- label: props.label ?? t('form.email'),
- placeholder: props.placeholder ?? t('form.email'),
+ label: t('form.email'),
+ placeholder: t('form.email'),
}))
const normalizeEmail = (emailAddress) => {
diff --git a/frontend/src/components/Inputs/InputPassword.spec.js b/frontend/src/components/Inputs/InputPassword.spec.js
index 94e50e026..9d6f5481d 100644
--- a/frontend/src/components/Inputs/InputPassword.spec.js
+++ b/frontend/src/components/Inputs/InputPassword.spec.js
@@ -80,7 +80,7 @@ describe('InputPassword', () => {
})
it('has the placeholder "input-field-placeholder"', () => {
- expect(wrapper.find('input').attributes('placeholder')).toEqual('input-field-placeholder')
+ expect(wrapper.find('input').attributes('placeholder')).toEqual('form.password')
})
it('has the value ""', () => {
@@ -88,7 +88,7 @@ describe('InputPassword', () => {
})
it('has the label "input-field-label"', () => {
- expect(wrapper.find('label').text()).toEqual('input-field-label')
+ expect(wrapper.find('label').text()).toEqual('form.password')
})
it('has the label for "input-field-name-input-field"', () => {
diff --git a/frontend/src/components/Inputs/InputPassword.vue b/frontend/src/components/Inputs/InputPassword.vue
index fa5f60a7e..b496d09a3 100644
--- a/frontend/src/components/Inputs/InputPassword.vue
+++ b/frontend/src/components/Inputs/InputPassword.vue
@@ -50,14 +50,6 @@ const props = defineProps({
type: String,
default: 'password',
},
- label: {
- type: String,
- default: 'Password',
- },
- placeholder: {
- type: String,
- default: 'Password',
- },
immediate: {
type: Boolean,
default: false,
@@ -78,18 +70,11 @@ const { value, errorMessage, meta, errors, validate } = useField(name, props.rul
validateOnMount: props.immediate,
})
-// onMounted(async () => {
-// await nextTick()
-// if (props.immediate) {
-// await validate()
-// }
-// })
-
const { t } = useI18n()
const defaultTranslations = computed(() => ({
- label: props.label ?? t('form.password'),
- placeholder: props.placeholder ?? t('form.password'),
+ label: t('form.password'),
+ placeholder: t('form.password'),
}))
const showPassword = ref(false)
@@ -109,3 +94,9 @@ const ariaMsg = computed(() => ({
const labelFor = computed(() => `${props.name}-input-field`)
+
+
diff --git a/frontend/src/components/Menu/Navbar.vue b/frontend/src/components/Menu/Navbar.vue
index cd6c0929d..5b1654278 100644
--- a/frontend/src/components/Menu/Navbar.vue
+++ b/frontend/src/components/Menu/Navbar.vue
@@ -129,8 +129,9 @@ button.navbar-toggler > span.navbar-toggler-icon {
.navbar-element {
z-index: 1000;
position: fixed;
- width: 100%;
background-color: #f5f5f5e6;
+ left: 0;
+ right: 0;
}
.sheet-img {
diff --git a/frontend/src/components/MobileSidebar/MobileSidebar.vue b/frontend/src/components/MobileSidebar/MobileSidebar.vue
index bfc76b25b..d416db5f8 100644
--- a/frontend/src/components/MobileSidebar/MobileSidebar.vue
+++ b/frontend/src/components/MobileSidebar/MobileSidebar.vue
@@ -7,6 +7,7 @@
no-header-close
horizontal
skip-animation
+ @update:model-value="isMobileMenuOpen = $event"
>