@@ -160,9 +163,9 @@ function Figure({
return (
- {title}
+ {title}
-
+
Graff.estate stream доступен
на любых устройствах
-
+
Высокий уровень графики и полное погружение покупателя в процесс
выбора квартиры
@@ -37,7 +37,7 @@ export function Streaming() {
-
+
Местоположение и устройство не имеют значения. Нужен только интернет
diff --git a/src/components/pages/MainPage/Winners.tsx b/src/components/pages/MainPage/Winners.tsx
index e5554180..6e4b8859 100644
--- a/src/components/pages/MainPage/Winners.tsx
+++ b/src/components/pages/MainPage/Winners.tsx
@@ -1,8 +1,5 @@
-import { ArrowMoreIcon } from '@/components/icons/ArrowMoreIcon';
-import { ClassNameWrapper } from '@/hocs/ClassNameWrapper';
import { Title } from '@/ui/Title';
import Image from 'next/image';
-import Link from 'next/link';
export function Winners() {
return (
@@ -22,13 +19,13 @@ export function Winners() {
alt={'BuildUP 2023'}
sizes="100%"
/>
-
+
В 2023 году наш продукт для застройщиков GRAFF.estate был признан лучшим
в категории IT на Акселераторе технологических стартапов
от лидеров в строительстве и девелопменте Build UP
от Фонда «Сколково»
-
@@ -39,7 +36,7 @@ export function Winners() {
className="text-[#9299BD]"
element={
}
/>
-
+ */}
);
}
diff --git a/src/components/pages/ProjectsPage/ProjectCard.tsx b/src/components/pages/ProjectsPage/ProjectCard.tsx
index f38b744c..b288db48 100644
--- a/src/components/pages/ProjectsPage/ProjectCard.tsx
+++ b/src/components/pages/ProjectsPage/ProjectCard.tsx
@@ -35,9 +35,9 @@ export function ProjectCard(project: IProject) {
/>
-
-
{name}
-
+
+
{name}
+
{company !== '-' && `${company},`} {city}
@@ -45,9 +45,7 @@ export function ProjectCard(project: IProject) {
{stage! < 6 && (
-
- {stagePercentage}%
-
+
{stagePercentage}%
)}
diff --git a/src/components/pages/ProjectsPage/ProjectsList.tsx b/src/components/pages/ProjectsPage/ProjectsList.tsx
index 64b024e3..4c2fe471 100644
--- a/src/components/pages/ProjectsPage/ProjectsList.tsx
+++ b/src/components/pages/ProjectsPage/ProjectsList.tsx
@@ -43,7 +43,7 @@ export function ProjectsList() {
}, [getProjects]);
return (
-
+
{sortedProjects && sortedProjects.size > 0 ? (
Array.from(sortedProjects.entries()).map(([year, projects]) => (
diff --git a/src/components/pages/ProjectsPage/ProjectsSection.tsx b/src/components/pages/ProjectsPage/ProjectsSection.tsx
index cf9c9259..4bfe6b73 100644
--- a/src/components/pages/ProjectsPage/ProjectsSection.tsx
+++ b/src/components/pages/ProjectsPage/ProjectsSection.tsx
@@ -28,7 +28,7 @@ export function ProjectsSection({
return (
filteredProjects.length !== 0 && (
-
{year}
+
{year}
{filteredProjects.map(project => (
))}
@@ -42,11 +42,11 @@ export function ProjectsSection({
ease: [0.58, 0.12, 0.27, 0.98],
delay: 0.2,
}}
- className="border border-[#3D425C] p-4 flex sm:flex-col sm:justify-end items-end gap-2 sm:rounded-none rounded-full sm:aspect-square hover:border-[#3D425C] active:border-[#3d425cc4] active:text-[#ffffffc4] duration-150 ease-in-out transition-all"
+ className="border border-[#3D425C] p-4 flex sm:flex-col sm:justify-end btn-text font-medium items-end gap-2 sm:rounded-none rounded-full sm:aspect-square hover:border-[#3D425C] active:border-[#3d425cc4] active:text-[#ffffffc4] duration-150 ease-in-out transition-all"
onClick={onClick}
>
-
Показать еще
+ Показать еще
}
diff --git a/src/consts/Posts.ts b/src/consts/Posts.ts
deleted file mode 100644
index 2b705a8e..00000000
--- a/src/consts/Posts.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { IArticle } from '@/types/IArticl';
-
-export const Posts: IArticle[] = [
- {
- id: '1',
- image: '/img/pages/blog/post1/cover.jpg',
- title:
- 'Graff interactive забрал 2 места в «Битве стартапов-победителей Build UP 2023»',
- description:
- 'Решения SIPUNI, GRAFF interactive и ГК «СТЕНА» стали победителями нашей «Битвы стартапов-победителей Build UP 2023»',
- tags: ['награды', 'недвижимость', 'новое'],
- mainImage: '/img/pages/blog/post1/main.jpg',
- createdAt: '12 ФЕВРАЛЯ 2024',
- extraDesc:
- 'Среди девелоперов, представители которых приняли участие в выборе победителей эфира: Группа «Самолет», ГК «А101», Холдинг Setl Group, ГК ТОЧНО, ДОНСТРОЙ, Федеральный девелопер «Неометрия», «Ак Барс Дом», PIONEER, ГК «Первый Трест» и Capital Group.',
- video: '/img/pages/blog/post1/video.jpg',
- slides: [
- '/img/pages/blog/post1/slides/1.jpg',
- '/img/pages/blog/post1/slides/2.jpg',
- '/img/pages/blog/post1/video.jpg',
- ],
- review: {
- author: {
- name: 'Егор Бобров',
- position: 'Коммерческий директор авторского квартала «Машаров»',
- avatar: '/img/pages/blog/post1/avatar.jpg',
- },
- text: 'Конверсия из показа в сделку выросла в 1,5 раза. Эффективность инструмента была подтверждена буквально в первый день после его внедрения. Например, один из клиентов, посетив офис и увидев свою будущую квартиру с помощью интерактивной панели, сразу решил купить недвижимость в этом проекте, отказавшись от других вариантов.',
- },
- extraVideo: '/img/pages/blog/post1/extra_video.jpg',
- },
- {
- id: '2',
- image: '/img/pages/blog/post2/cover.jpg',
- title:
- 'Graff interactive на международном фестивале маркетинга и креатива в недвижимости WOW FEST 2023',
- description:
- 'В начале сентября приняли участие в международном фестивале маркетинга и креатива в недвижимости WOW FEST 2023. В рамках программы фестиваля мы познакомили участников и гостей форума с нашим интерактивным инструментом продаж.',
- tags: ['выставки', 'недвижимость'],
- createdAt: '15 СЕНТЯБРЯ 2023',
- },
- {
- id: '3',
- image: '/img/pages/blog/post3/cover.jpg',
- title: 'Транспортное и специальное тренажеростроение — 2023',
- description:
- '27 апреля 2023 года в Москве — состоялась XV Международная конференция «Транспортное и специальное тренажеростроение — 2023». Директор GRAFF interactive принял участие и выступил с докладом',
- tags: ['лекция', 'тренажеры'],
- createdAt: '27 АПРЕЛЯ 2023',
- },
-];
diff --git a/src/consts/projects.ts b/src/consts/projects.ts
new file mode 100644
index 00000000..4183623b
--- /dev/null
+++ b/src/consts/projects.ts
@@ -0,0 +1,28 @@
+// async function AddAllProjects() {
+// for (const project of Data) {
+// try {
+// const image = await oldApi.get('upload/' + project.image).blob();
+// const formData = new FormData();
+// formData.append('files', image);
+// formData.append('dest', 'projects');
+// const { files } = await api
+// .post('upload', { body: formData })
+// .json<{ files: string[] }>();
+// addProject({
+// variables: {
+// input: {
+// city: project.city,
+// company: project.company,
+// devices: project.devices,
+// image: files[0],
+// name: project.name,
+// releaseDate: project.releaseDate.split('T')[0],
+// stage: project.stage!,
+// },
+// },
+// });
+// } catch (error) {
+// console.log((error as Error).message);
+// }
+// }
+// }
diff --git a/src/generated/graphql.ts b/src/generated/graphql.ts
index b534e793..20343d63 100644
--- a/src/generated/graphql.ts
+++ b/src/generated/graphql.ts
@@ -104,6 +104,7 @@ export type Mutation = {
__typename?: 'Mutation';
createArticle: ArticleResult;
createProject: ProjectResult;
+ deleteAllProjects: ProjectsResult;
deleteArticle: ArticleResult;
deleteProject: ProjectResult;
login: AuthResult;
diff --git a/src/queries/projects/deleteAllProjects/deleteAllProjects.generated.ts b/src/queries/projects/deleteAllProjects/deleteAllProjects.generated.ts
new file mode 100644
index 00000000..b8cf6318
--- /dev/null
+++ b/src/queries/projects/deleteAllProjects/deleteAllProjects.generated.ts
@@ -0,0 +1,56 @@
+import * as Types from '../../../generated/graphql';
+
+import { gql } from '@apollo/client';
+import * as Apollo from '@apollo/client';
+const defaultOptions = {} as const;
+export type DeleteAllProjectsMutationVariables = Types.Exact<{ [key: string]: never; }>;
+
+
+export type DeleteAllProjectsMutation = { __typename?: 'Mutation', deleteAllProjects: { __typename?: 'Error', message: string } | { __typename?: 'Projects', projects: Array<{ __typename?: 'Project', id: number, name: string, company: string, image: string, stage: number, releaseDate: any, devices: Array
}> } };
+
+
+export const DeleteAllProjectsDocument = gql`
+ mutation DeleteAllProjects {
+ deleteAllProjects {
+ ... on Error {
+ message
+ }
+ ... on Projects {
+ projects {
+ id
+ name
+ company
+ image
+ stage
+ releaseDate
+ devices
+ }
+ }
+ }
+}
+ `;
+export type DeleteAllProjectsMutationFn = Apollo.MutationFunction;
+
+/**
+ * __useDeleteAllProjectsMutation__
+ *
+ * To run a mutation, you first call `useDeleteAllProjectsMutation` within a React component and pass it any options that fit your needs.
+ * When your component renders, `useDeleteAllProjectsMutation` returns a tuple that includes:
+ * - A mutate function that you can call at any time to execute the mutation
+ * - An object with fields that represent the current status of the mutation's execution
+ *
+ * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
+ *
+ * @example
+ * const [deleteAllProjectsMutation, { data, loading, error }] = useDeleteAllProjectsMutation({
+ * variables: {
+ * },
+ * });
+ */
+export function useDeleteAllProjectsMutation(baseOptions?: Apollo.MutationHookOptions) {
+ const options = {...defaultOptions, ...baseOptions}
+ return Apollo.useMutation(DeleteAllProjectsDocument, options);
+ }
+export type DeleteAllProjectsMutationHookResult = ReturnType;
+export type DeleteAllProjectsMutationResult = Apollo.MutationResult;
+export type DeleteAllProjectsMutationOptions = Apollo.BaseMutationOptions;
\ No newline at end of file
diff --git a/src/queries/projects/deleteAllProjects/deleteAllProjects.gql b/src/queries/projects/deleteAllProjects/deleteAllProjects.gql
new file mode 100644
index 00000000..293aae02
--- /dev/null
+++ b/src/queries/projects/deleteAllProjects/deleteAllProjects.gql
@@ -0,0 +1,18 @@
+mutation DeleteAllProjects {
+ deleteAllProjects {
+ ... on Error {
+ message
+ }
+ ... on Projects {
+ projects {
+ id
+ name
+ company
+ image
+ stage
+ releaseDate
+ devices
+ }
+ }
+ }
+}
diff --git a/src/queries/projects/deleteAllProjects/index.ts b/src/queries/projects/deleteAllProjects/index.ts
new file mode 100644
index 00000000..d67e04a8
--- /dev/null
+++ b/src/queries/projects/deleteAllProjects/index.ts
@@ -0,0 +1 @@
+export * from './deleteAllProjects.generated';
diff --git a/src/ui/Descriptor.tsx b/src/ui/Descriptor.tsx
index 6b7c10f1..17e3b03a 100644
--- a/src/ui/Descriptor.tsx
+++ b/src/ui/Descriptor.tsx
@@ -10,7 +10,7 @@ export function Descriptor({
return (
-
{title}
+ {title}
);
}
diff --git a/src/ui/DeviceBadge.tsx b/src/ui/DeviceBadge.tsx
index 3c40385f..dadeba8b 100644
--- a/src/ui/DeviceBadge.tsx
+++ b/src/ui/DeviceBadge.tsx
@@ -7,7 +7,7 @@ export function DeviceBadge({
badgeType: Device;
active?: boolean;
}) {
- return badgeType === 'stream' ? (
+ return badgeType === 'Stream' ? (
{
- // rule.selector = rule.selector
- // .split(',')
- // .map(selector => `tailwind-preflight ${selector}`)
- // .join(',');
rule.selector = '.no-tailwind-base ' + rule.selector;
});
addBase(preflightStyles.nodes);