forked from baron/baron-sso
userfront: 회원가입 단계에서 검증 이메일 도메인 판정 없이 단일 뷰를 노출하고 기업 임직원 가이드 배너 추가 (#1183)
This commit is contained in:
@@ -1712,126 +1712,104 @@ Matters not expressly provided in this Policy are governed by the Company's inte
|
|||||||
horizontal: isDesktop ? 32 : 20,
|
horizontal: isDesktop ? 32 : 20,
|
||||||
vertical: isDesktop ? 32 : 24,
|
vertical: isDesktop ? 32 : 24,
|
||||||
),
|
),
|
||||||
child: _affiliationType == 'AFFILIATE'
|
child: Column(
|
||||||
? Column(
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
tr('msg.userfront.signup.profile.title'),
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: isDesktop ? 28 : 20,
|
||||||
|
fontWeight: FontWeight.w700,
|
||||||
|
height: 1.25,
|
||||||
|
color: _signupInk,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
_buildProfileInfoNoticeCard(isDesktop: isDesktop),
|
||||||
|
SizedBox(height: isDesktop ? 28 : 24),
|
||||||
|
_buildProfileFieldGroup(
|
||||||
|
title: tr('ui.userfront.signup.profile.name'),
|
||||||
|
description: '기본 정보',
|
||||||
|
isDesktop: isDesktop,
|
||||||
|
child: TextFormField(
|
||||||
|
controller: _nameController,
|
||||||
|
onChanged: (_) => setState(() {}),
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: tr('ui.userfront.signup.profile.name'),
|
||||||
|
border: const OutlineInputBorder(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 24),
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.all(16),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: _signupSurface,
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
border: Border.all(
|
||||||
|
color: _signupBorder,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Row(
|
||||||
'가족사 임직원 가입 안내',
|
children: [
|
||||||
style: TextStyle(
|
Icon(
|
||||||
fontSize: isDesktop ? 28 : 20,
|
Icons.business,
|
||||||
fontWeight: FontWeight.w700,
|
color: Theme.of(context).colorScheme.primary,
|
||||||
height: 1.25,
|
size: 20,
|
||||||
color: _signupInk,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
Container(
|
|
||||||
padding: const EdgeInsets.all(20),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primaryContainer
|
|
||||||
.withValues(alpha: 0.12),
|
|
||||||
borderRadius: BorderRadius.circular(16),
|
|
||||||
border: Border.all(
|
|
||||||
color: Theme.of(context)
|
|
||||||
.colorScheme
|
|
||||||
.primary
|
|
||||||
.withValues(alpha: 0.25),
|
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(width: 8),
|
||||||
child: Column(
|
Expanded(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
child: Text(
|
||||||
children: [
|
'기업/가족사 소속이신가요?',
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Icon(
|
|
||||||
Icons.business,
|
|
||||||
color: Theme.of(context).colorScheme.primary,
|
|
||||||
size: 24,
|
|
||||||
),
|
|
||||||
const SizedBox(width: 10),
|
|
||||||
Expanded(
|
|
||||||
child: Text(
|
|
||||||
'기업 및 가족사 임직원 대상자입니다.',
|
|
||||||
style: TextStyle(
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontSize: 16,
|
|
||||||
color: Theme.of(context).colorScheme.primary,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
const SizedBox(height: 14),
|
|
||||||
Text(
|
|
||||||
'귀하의 이메일 도메인은 기업/가족사 임직원 대상자입니다. 온라인 직접 가입 대신 별도의 조인 문의를 통해 가입 및 워크스페이스 연동이 진행됩니다.\n\n아래 버튼을 눌러 담당자에게 가입 연동 문의 메일을 발송하시거나 사내 시스템 관리자에게 문의해 주시기 바랍니다.',
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 13,
|
fontWeight: FontWeight.bold,
|
||||||
height: 1.55,
|
fontSize: 14,
|
||||||
color: _signupInk.withValues(alpha: 0.8),
|
color: _signupInk,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
),
|
||||||
FilledButton.icon(
|
],
|
||||||
onPressed: () async {
|
|
||||||
final Uri emailUri = Uri(
|
|
||||||
scheme: 'mailto',
|
|
||||||
path: 'baroncs@baroncs.co.kr',
|
|
||||||
query: Uri.encodeFull(
|
|
||||||
'subject=[Baron SSO] 기업 소속 가입 및 연동 문의',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
if (await canLaunchUrl(emailUri)) {
|
|
||||||
await launchUrl(emailUri);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
icon: const Icon(Icons.mail_outline, size: 18),
|
|
||||||
label: const Text('기업 소속 문의하기'),
|
|
||||||
style: FilledButton.styleFrom(
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(8),
|
|
||||||
),
|
|
||||||
padding: const EdgeInsets.symmetric(
|
|
||||||
vertical: 14),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
const SizedBox(height: 8),
|
||||||
)
|
|
||||||
: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
||||||
children: [
|
|
||||||
Text(
|
Text(
|
||||||
tr('msg.userfront.signup.profile.title'),
|
'기업 및 가족사 임직원은 온라인 즉시 가입 대신 별도 연동 문의를 통해 워크스페이스 계정이 발급됩니다.\n\n해당하시는 경우, 아래 버튼을 눌러 담당자에게 문의 메일을 발송해 주시기 바랍니다.',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: isDesktop ? 28 : 20,
|
fontSize: 12,
|
||||||
fontWeight: FontWeight.w700,
|
height: 1.45,
|
||||||
height: 1.25,
|
color: _signupInk.withValues(alpha: 0.7),
|
||||||
color: _signupInk,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
_buildProfileInfoNoticeCard(isDesktop: isDesktop),
|
OutlinedButton.icon(
|
||||||
SizedBox(height: isDesktop ? 28 : 24),
|
onPressed: () async {
|
||||||
_buildProfileFieldGroup(
|
final Uri emailUri = Uri(
|
||||||
title: tr('ui.userfront.signup.profile.name'),
|
scheme: 'mailto',
|
||||||
description: '기본 정보',
|
path: 'baroncs@baroncs.co.kr',
|
||||||
isDesktop: isDesktop,
|
query: Uri.encodeFull(
|
||||||
child: TextFormField(
|
'subject=[Baron SSO] 기업 소속 가입 및 연동 문의',
|
||||||
controller: _nameController,
|
),
|
||||||
onChanged: (_) => setState(() {}),
|
);
|
||||||
decoration: InputDecoration(
|
if (await canLaunchUrl(emailUri)) {
|
||||||
labelText: tr('ui.userfront.signup.profile.name'),
|
await launchUrl(emailUri);
|
||||||
border: const OutlineInputBorder(),
|
}
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.mail_outline, size: 16),
|
||||||
|
label: const Text('기업 소속 문의하기'),
|
||||||
|
style: OutlinedButton.styleFrom(
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
),
|
),
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 10),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -2305,7 +2283,7 @@ Matters not expressly provided in this Policy are governed by the Company's inte
|
|||||||
canGoNext = true;
|
canGoNext = true;
|
||||||
}
|
}
|
||||||
if (_currentStep == 3) {
|
if (_currentStep == 3) {
|
||||||
canGoNext = _affiliationType == 'GENERAL' && _nameController.text.trim().isNotEmpty;
|
canGoNext = _nameController.text.trim().isNotEmpty;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
|||||||
Reference in New Issue
Block a user