Demo
This commit is contained in:
parent
bbf298c472
commit
eda2e18ec9
6 changed files with 181 additions and 248 deletions
|
|
@ -7,7 +7,6 @@ import Services from './pages/Services';
|
|||
import About from './pages/About';
|
||||
import Blog from './pages/Blog';
|
||||
import Contact from './pages/Contact';
|
||||
import Demo from './pages/Demo';
|
||||
import BlogDetail from './pages/BlogDetail';
|
||||
import { LanguageProvider } from './context/LanguageContext';
|
||||
|
||||
|
|
@ -23,7 +22,6 @@ function App() {
|
|||
<Route path="/about" element={<About />} />
|
||||
<Route path="/blog" element={<Blog />} />
|
||||
<Route path="/contact" element={<Contact />} />
|
||||
<Route path="/demo" element={<Demo />} />
|
||||
<Route path="/blog/:id" element={<BlogDetail />} />
|
||||
</Routes>
|
||||
</Layout>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ const Hero: React.FC = () => {
|
|||
|
||||
<div className="relative container mx-auto px-4 pt-32 pb-16">
|
||||
<div className="max-w-4xl mx-auto text-center text-white">
|
||||
<h1 className="text-5xl md:text-7xl font-bold mb-6 leading-tight">
|
||||
<h1 className="text-5xl md:text-6xl font-bold mb-6 leading-tight">
|
||||
{t('hero.title')}
|
||||
</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,13 +25,13 @@ const Header: React.FC = () => {
|
|||
const toggleLanguage = () => setLanguage(language === "en" ? "tr" : "en");
|
||||
|
||||
const navLinks = [
|
||||
{ name: t('nav.home'), path: "/" },
|
||||
{ name: t('nav.about'), path: "/about" },
|
||||
{ name: t('nav.products'), path: "/products" },
|
||||
{ name: t('nav.services'), path: "/services" },
|
||||
{ name: t('nav.demo'), path: "/demo" },
|
||||
{ name: t('nav.blog'), path: "/blog" },
|
||||
{ name: t('nav.contact'), path: "/contact" },
|
||||
{ name: t("nav.home"), path: "/" },
|
||||
{ name: t("nav.about"), path: "/about" },
|
||||
{ name: t("nav.products"), path: "/products" },
|
||||
{ name: t("nav.services"), path: "/services" },
|
||||
{ name: t("nav.blog"), path: "/blog" },
|
||||
{ name: t("nav.contact"), path: "/contact" },
|
||||
{ name: t("nav.demo"), path: "https://kurs.sozsoft.com" },
|
||||
];
|
||||
|
||||
return (
|
||||
|
|
@ -53,11 +53,14 @@ const Header: React.FC = () => {
|
|||
<Link
|
||||
key={link.path}
|
||||
to={link.path}
|
||||
className="font-medium text-sm text-white hover:text-blue-400 transition-colors"
|
||||
className={`font-medium text-sm text-white hover:text-blue-400 transition-colors ${
|
||||
link.name === "Demo" ? "bg-blue-600 rounded px-2 py-1" : ""
|
||||
}`}
|
||||
>
|
||||
{link.name}
|
||||
</Link>
|
||||
))}
|
||||
|
||||
<button
|
||||
onClick={toggleLanguage}
|
||||
className="flex items-center space-x-1 font-medium text-sm text-white hover:text-blue-400 transition-colors"
|
||||
|
|
@ -86,12 +89,15 @@ const Header: React.FC = () => {
|
|||
<Link
|
||||
key={link.path}
|
||||
to={link.path}
|
||||
className="font-medium text-white hover:text-blue-400 transition-colors"
|
||||
className={`font-medium text-white hover:text-blue-400 transition-colors ${
|
||||
link.name === "Demo" ? "bg-blue-600 rounded px-2 py-1" : ""
|
||||
}`}
|
||||
onClick={toggleMenu}
|
||||
>
|
||||
{link.name}
|
||||
</Link>
|
||||
))}
|
||||
|
||||
<button
|
||||
onClick={toggleLanguage}
|
||||
className="flex items-center space-x-1 font-medium text-white hover:text-blue-400 transition-colors"
|
||||
|
|
@ -107,4 +113,4 @@ const Header: React.FC = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export default Header;
|
||||
export default Header;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const Contact: React.FC = () => {
|
|||
<div className="container mx-auto px-4">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12">
|
||||
{/* Contact Information */}
|
||||
<div className="space-y-8">
|
||||
<div className="space-y-4">
|
||||
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6">
|
||||
{t("contact.info.title")}
|
||||
|
|
@ -48,9 +48,6 @@ const Contact: React.FC = () => {
|
|||
<div className="flex items-start space-x-4">
|
||||
<MapPin className="w-6 h-6 text-blue-600 flex-shrink-0 mt-1" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
{t("contact.address")}
|
||||
</h3>
|
||||
<p className="text-gray-600">
|
||||
{t("contact.address.full")}
|
||||
</p>
|
||||
|
|
@ -59,18 +56,12 @@ const Contact: React.FC = () => {
|
|||
<div className="flex items-start space-x-4">
|
||||
<Phone className="w-6 h-6 text-blue-600 flex-shrink-0" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
{t("contact.phone")}
|
||||
</h3>
|
||||
<p className="text-gray-600">+90 (544) 769 7 638</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-4">
|
||||
<Mail className="w-6 h-6 text-blue-600 flex-shrink-0" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
{t("contact.email")}
|
||||
</h3>
|
||||
<p className="text-gray-600">
|
||||
<a
|
||||
href="mailto:destek@sozsoft.com"
|
||||
|
|
@ -79,53 +70,49 @@ const Contact: React.FC = () => {
|
|||
destek@sozsoft.com
|
||||
</a>
|
||||
</p>
|
||||
<p className="text-gray-600">
|
||||
<a
|
||||
href="mailto:kariyer@sozsoft.com"
|
||||
className="hover:underline text-blue-600"
|
||||
>
|
||||
kariyer@sozsoft.com
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-4">
|
||||
<Building className="w-6 h-6 text-blue-600 flex-shrink-0" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
{t("contact.taxOffice")}
|
||||
</h3>
|
||||
<p className="text-gray-600">Kozyatağı</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-4">
|
||||
<FileText className="w-6 h-6 text-blue-600 flex-shrink-0" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
{t("contact.taxNumber")}
|
||||
</h3>
|
||||
<p className="text-gray-600">32374982750</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-4">
|
||||
<Globe className="w-6 h-6 text-blue-600 flex-shrink-0" />
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
<a
|
||||
href="http://www.sozsoft.com"
|
||||
className="text-blue-600 hover:underline"
|
||||
>
|
||||
http://www.sozsoft.com
|
||||
</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Bank Information */}
|
||||
<div className="space-y-8">
|
||||
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6">
|
||||
{t("contact.bank.title")}
|
||||
</h2>
|
||||
<div className="space-y-4">
|
||||
<img
|
||||
src="/img/enpara.svg"
|
||||
alt="Enpara Logo"
|
||||
className="w-24 object-contain mt-1 flex-shrink-0"
|
||||
/>
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
Özlem Öztürk
|
||||
</h3>
|
||||
<p className="text-gray-600">
|
||||
03663 / Enpara
|
||||
<br />
|
||||
73941177
|
||||
<br />
|
||||
TR65 0011 1000 0000 0073 9411 77
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Bank Information */}
|
||||
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6">
|
||||
{t("contact.workHours")}
|
||||
|
|
@ -155,32 +142,145 @@ const Contact: React.FC = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="space-y-8">
|
||||
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6">
|
||||
{t("contact.bank.title")}
|
||||
{t("demo.form.title")}
|
||||
</h2>
|
||||
<div className="space-y-4">
|
||||
<img
|
||||
src="/img/enpara.svg"
|
||||
alt="Enpara Logo"
|
||||
className="w-24 object-contain mt-1 flex-shrink-0"
|
||||
/>
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900">
|
||||
Özlem Öztürk
|
||||
</h3>
|
||||
<p className="text-gray-600">
|
||||
03663 / Enpara
|
||||
<br />
|
||||
73941177
|
||||
<br />
|
||||
TR65 0011 1000 0000 0073 9411 77
|
||||
</p>
|
||||
<form className="space-y-6">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="company"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.company") || "Şirket Adı"}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="company"
|
||||
name="company"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="fullName"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.fullName") || "Adınız Soyadınız"}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="fullName"
|
||||
name="fullName"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="email"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.email")}
|
||||
</label>
|
||||
<input
|
||||
type="email"
|
||||
id="email"
|
||||
name="email"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="phone"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.phone")}
|
||||
</label>
|
||||
<input
|
||||
type="tel"
|
||||
id="phone"
|
||||
name="phone"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label
|
||||
htmlFor="address"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.address")}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="address"
|
||||
name="address"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="branchCount"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.branchCount") || "Şube Adedi"}
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
id="branchCount"
|
||||
name="branchCount"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="userCount"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.userCount") || "Kullanıcı Adedi"}
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
id="userCount"
|
||||
name="userCount"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label
|
||||
htmlFor="message"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.message")}
|
||||
</label>
|
||||
<textarea
|
||||
id="message"
|
||||
name="message"
|
||||
rows="10"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
className="w-full bg-blue-600 text-white py-3 px-6 rounded-lg hover:bg-blue-700 transition-colors font-semibold"
|
||||
>
|
||||
{t("common.send")}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,169 +0,0 @@
|
|||
import React from "react";
|
||||
import { useLanguage } from "../context/LanguageContext";
|
||||
|
||||
const Demo: React.FC = () => {
|
||||
const { t } = useLanguage();
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50">
|
||||
<div className="relative bg-blue-900 text-white py-24">
|
||||
<div
|
||||
className="absolute inset-0 opacity-20"
|
||||
style={{
|
||||
backgroundImage:
|
||||
'url("https://images.pexels.com/photos/3183155/pexels-photo-3183155.jpeg?auto=compress&cs=tinysrgb&w=1920")',
|
||||
backgroundSize: "cover",
|
||||
backgroundPosition: "center",
|
||||
}}
|
||||
></div>
|
||||
<div className="container mx-auto pt-16 px-4 relative">
|
||||
<h1 className="text-5xl font-bold mb-6">{t("demo.form.title")}</h1>
|
||||
<p className="text-xl max-w-3xl">{t("demo.subtitle")}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="py-16">
|
||||
<div className="container mx-auto px-4">
|
||||
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||
<h2 className="text-2xl font-bold text-gray-900 mb-6">
|
||||
{t("demo.form.title")}
|
||||
</h2>
|
||||
<form className="space-y-6">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="company"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.company") || "Şirket Adı"}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="company"
|
||||
name="company"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="fullName"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.fullName") || "Adınız Soyadınız"}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="fullName"
|
||||
name="fullName"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="email"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.email")}
|
||||
</label>
|
||||
<input
|
||||
type="email"
|
||||
id="email"
|
||||
name="email"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="phone"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.phone")}
|
||||
</label>
|
||||
<input
|
||||
type="tel"
|
||||
id="phone"
|
||||
name="phone"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label
|
||||
htmlFor="address"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.address")}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
id="address"
|
||||
name="address"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<label
|
||||
htmlFor="branchCount"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.branchCount") || "Şube Adedi"}
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
id="branchCount"
|
||||
name="branchCount"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label
|
||||
htmlFor="userCount"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.userCount") || "Kullanıcı Adedi"}
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
id="userCount"
|
||||
name="userCount"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label
|
||||
htmlFor="message"
|
||||
className="block text-sm font-medium text-gray-700 mb-2"
|
||||
>
|
||||
{t("common.message")}
|
||||
</label>
|
||||
<textarea
|
||||
id="message"
|
||||
name="message"
|
||||
rows="4"
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
className="w-full bg-blue-600 text-white py-3 px-6 rounded-lg hover:bg-blue-700 transition-colors font-semibold"
|
||||
>
|
||||
{t("common.send")}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Demo;
|
||||
|
|
@ -2,7 +2,6 @@ import { FailedSignInResponse } from '@/@types/auth'
|
|||
import ActionLink from '@/components/shared/ActionLink'
|
||||
import Captcha from '@/components/shared/Captcha'
|
||||
import PasswordInput from '@/components/shared/PasswordInput'
|
||||
import { Select } from '@/components/ui'
|
||||
import Alert from '@/components/ui/Alert'
|
||||
import Button from '@/components/ui/Button'
|
||||
import Checkbox from '@/components/ui/Checkbox'
|
||||
|
|
@ -10,7 +9,6 @@ import { FormContainer, FormItem } from '@/components/ui/Form'
|
|||
import Input from '@/components/ui/Input'
|
||||
import PlatformLoginResultType from '@/constants/login.result.enum'
|
||||
import { ROUTES_ENUM } from '@/constants/route.constant'
|
||||
import { getTenants } from '@/proxy/admin/tenant/tenant.service'
|
||||
import { useStoreActions, useStoreState } from '@/store'
|
||||
import useAuth from '@/utils/hooks/useAuth'
|
||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||
|
|
@ -170,10 +168,10 @@ const Login = () => {
|
|||
}
|
||||
|
||||
const subDomainName = getSubdomain()
|
||||
//const subDomainName = 'DEMO2'
|
||||
//const subDomainName = 'KURS2'
|
||||
const tenantId = useStoreState((a) => a.auth.tenantId) ?? subDomainName
|
||||
const tenantStyle: React.CSSProperties | undefined =
|
||||
subDomainName && subDomainName !== 'DEMO'
|
||||
subDomainName && subDomainName !== 'KURS'
|
||||
? {
|
||||
opacity: 0,
|
||||
position: 'absolute',
|
||||
|
|
@ -213,7 +211,7 @@ const Login = () => {
|
|||
value={tenantId || ''}
|
||||
onChange={(e) => setTenantId(e.target.value)}
|
||||
style={tenantStyle}
|
||||
aria-hidden={subDomainName && subDomainName !== 'DEMO' ? 'true' : 'false'}
|
||||
aria-hidden={subDomainName && subDomainName !== 'KURS' ? 'true' : 'false'}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
|
|
|
|||
Loading…
Reference in a new issue