Skip to content

Commit fddad2d

Browse files
committed
RDoc-3361 Added main page features versioning
1 parent 534504d commit fddad2d

File tree

8 files changed

+89
-21
lines changed

8 files changed

+89
-21
lines changed

src/components/Homepage/Features/FeaturesLists/AiFeatures.tsx

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,34 @@ import { Feature } from "@site/src/typescript/feature";
55

66
export default function AiFeaturesGrid() {
77
const pluginId = "default";
8+
const minimumCategorySupportedVersion = "7.0";
89
const { activeVersion } = useActiveDocContext(pluginId);
910

11+
if (minimumCategorySupportedVersion > activeVersion.label) {
12+
return null;
13+
}
14+
1015
const aiFeatures: Feature[] = [
1116
{
1217
title: "Vector search",
1318
icon: "vector-search",
1419
url: `/${activeVersion.label}/ai-integration/vector-search/ravendb-as-vector-database`,
1520
description: "Find contextually relevant data",
21+
minimumSupportedVersion: "7.0"
1622
},
1723
{
1824
title: "GenAI",
1925
icon: "genai",
2026
url: `/${activeVersion.label}/ai-integration/gen-ai-integration/gen-ai-overview`,
2127
description: "Empower your application using intelligent task",
28+
minimumSupportedVersion: "7.1"
2229
},
2330
{
2431
title: "Embeddings generation",
2532
icon: "ai-etl",
2633
url: `/${activeVersion.label}/ai-integration/generating-embeddings/overview`,
2734
description: "Automatically turn your data into AI-ready vectors",
35+
minimumSupportedVersion: "7.0"
2836
},
2937
];
3038

@@ -34,9 +42,15 @@ export default function AiFeaturesGrid() {
3442
AI
3543
</Heading>
3644
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
37-
{aiFeatures.map((props, idx) => (
38-
<FeatureItem key={idx} {...props} />
39-
))}
45+
{aiFeatures
46+
.filter(
47+
feature =>
48+
!feature.minimumSupportedVersion ||
49+
feature.minimumSupportedVersion <= activeVersion.label
50+
)
51+
.map((props, idx) => (
52+
<FeatureItem key={idx} {...props} />
53+
))}
4054
</div>
4155
</>
4256
);

src/components/Homepage/Features/FeaturesLists/BackgroundTasksFeatures.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export default function BackgroundTasksFeaturesGrid() {
2525
icon: "data-archival",
2626
url: `/${activeVersion.label}/data-archival/overview`,
2727
description: "Retain old documents access while boosting performance",
28+
minimumSupportedVersion: "6.0"
2829
},
2930
];
3031

@@ -34,9 +35,15 @@ export default function BackgroundTasksFeaturesGrid() {
3435
Background tasks
3536
</Heading>
3637
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
37-
{backgroundTasksFeatures.map((props, idx) => (
38-
<FeatureItem key={idx} {...props} />
39-
))}
38+
{backgroundTasksFeatures
39+
.filter(
40+
feature =>
41+
!feature.minimumSupportedVersion ||
42+
feature.minimumSupportedVersion <= activeVersion.label
43+
)
44+
.map((props, idx) => (
45+
<FeatureItem key={idx} {...props} />
46+
))}
4047
</div>
4148
</>
4249
);

src/components/Homepage/Features/FeaturesLists/ClustersFeatures.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default function ClustersFeaturesGrid() {
1414
url: `/${activeVersion.label}/sharding/overview`,
1515
description:
1616
"Partition dozens of terabytes across nodes for extreme scale",
17+
minimumSupportedVersion: "6.0"
1718
},
1819
{
1920
title: "Cluster-wide tasks",
@@ -36,9 +37,15 @@ export default function ClustersFeaturesGrid() {
3637
Clusters
3738
</Heading>
3839
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
39-
{clustersFeatures.map((props, idx) => (
40-
<FeatureItem key={idx} {...props} />
41-
))}
40+
{clustersFeatures
41+
.filter(
42+
feature =>
43+
!feature.minimumSupportedVersion ||
44+
feature.minimumSupportedVersion <= activeVersion.label
45+
)
46+
.map((props, idx) => (
47+
<FeatureItem key={idx} {...props} />
48+
))}
4249
</div>
4350
</>
4451
);

src/components/Homepage/Features/FeaturesLists/DocumentExtensionsFeatures.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default function DocumentExtensionsFeaturesGrid() {
1919
icon: "timeseries",
2020
url: `/${activeVersion.label}/document-extensions/timeseries/overview`,
2121
description: "Store, query and aggregate timestamped data natively",
22+
minimumSupportedVersion: "5.0"
2223
},
2324
{
2425
title: "Attachments",
@@ -33,6 +34,7 @@ export default function DocumentExtensionsFeaturesGrid() {
3334
url: `/${activeVersion.label}/server/storage/documents-compression`,
3435
description:
3536
"Automatically compress document content for storage savings",
37+
minimumSupportedVersion: "5.0"
3638
},
3739
{
3840
title: "Counters",
@@ -48,9 +50,15 @@ export default function DocumentExtensionsFeaturesGrid() {
4850
Document extensions
4951
</Heading>
5052
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
51-
{documentExtensionsFeatures.map((props, idx) => (
52-
<FeatureItem key={idx} {...props} />
53-
))}
53+
{documentExtensionsFeatures
54+
.filter(
55+
feature =>
56+
!feature.minimumSupportedVersion ||
57+
feature.minimumSupportedVersion <= activeVersion.label
58+
)
59+
.map((props, idx) => (
60+
<FeatureItem key={idx} {...props} />
61+
))}
5462
</div>
5563
</>
5664
);

src/components/Homepage/Features/FeaturesLists/IntegrationFeatures.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ export default function IntegrationFeaturesGrid() {
2020
url: `/${activeVersion.label}/server/ongoing-tasks/etl/olap`,
2121
description:
2222
"Export data as ApacheParquet to your data lake for analytics",
23+
minimumSupportedVersion: "5.2"
2324
},
2425
{
2526
title: "Elasticsearch ETL",
2627
icon: "elastic-search-etl",
2728
url: `/${activeVersion.label}/server/ongoing-tasks/etl/elasticsearch`,
2829
description: "Stream RavenDB data into Elasticsearch indices",
30+
minimumSupportedVersion: "5.3"
2931
},
3032
{
3133
title: "SQL ETL",
@@ -39,59 +41,68 @@ export default function IntegrationFeaturesGrid() {
3941
url: `/${activeVersion.label}/server/ongoing-tasks/etl/queue-etl/kafka`,
4042
description:
4143
"Publish documents into Kafka topics for real-time event pipelines",
44+
minimumSupportedVersion: "5.4"
4245
},
4346
{
4447
title: "RabbitMQ ETL",
4548
icon: "rabbitmq-etl",
4649
url: `/${activeVersion.label}/server/ongoing-tasks/etl/queue-etl/rabbit-mq`,
4750
description:
4851
"Send transformed RavenDB data directly to RabbitMQ exchanges",
52+
minimumSupportedVersion: "5.4"
4953
},
5054
{
5155
title: "Snowflake ETL",
5256
icon: "snowflake-etl",
5357
url: `/${activeVersion.label}/server/ongoing-tasks/etl/snowflake`,
5458
description:
5559
"Load and transform data directly into Snowflake for analytics",
60+
minimumSupportedVersion: "7.0"
5661
},
5762
{
5863
title: "Amazon SQS ETL",
5964
icon: "amazon-sqs-etl",
6065
url: `/${activeVersion.label}/server/ongoing-tasks/etl/queue-etl/amazon-sqs`,
6166
description: "Send CloudEvents messages to Amazon SQS",
67+
minimumSupportedVersion: "7.0"
6268
},
6369
{
6470
title: "Azure Queue Storage ETL",
6571
icon: "azure-queue-storage-etl",
6672
url: `/${activeVersion.label}/server/ongoing-tasks/etl/queue-etl/azure-queue`,
6773
description: "Send CloudEvents messages to Azure Queue Storage",
74+
minimumSupportedVersion: "6.2"
6875
},
6976
{
7077
title: "RabbitMQ Sink",
7178
icon: "rabbitmq-sink",
7279
url: `/${activeVersion.label}/server/ongoing-tasks/queue-sink/rabbit-mq-queue-sink`,
7380
description:
7481
"Ingest messages from RabbitMQ directly into RavenDB documents",
82+
minimumSupportedVersion: "6.0"
7583
},
7684
{
7785
title: "Kafka Sink",
7886
icon: "kafka-sink",
7987
url: `/${activeVersion.label}/server/ongoing-tasks/queue-sink/kafka-queue-sink`,
8088
description:
8189
"Receive data into RavenDB from Kafka streams as source event",
90+
minimumSupportedVersion: "6.0"
8291
},
8392
{
8493
title: "PowerBI",
8594
icon: "powerbi",
8695
url: `/${activeVersion.label}/integrations/postgresql-protocol/power-bi`,
8796
description:
8897
"Connect RavenDB to Power BI for live business intelligence reporting",
98+
minimumSupportedVersion: "5.3"
8999
},
90100
{
91101
title: "Akka.NET",
92102
icon: "akka-net",
93103
url: `/${activeVersion.label}/integrations/akka.net-persistence/integrating-with-akka-persistence`,
94104
description: "Use RavenDB as Akka.Persistence storage",
105+
minimumSupportedVersion: "6.2"
95106
},
96107
];
97108

@@ -101,9 +112,15 @@ export default function IntegrationFeaturesGrid() {
101112
Integration
102113
</Heading>
103114
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
104-
{integrationFeatures.map((props, idx) => (
105-
<FeatureItem key={idx} {...props} />
106-
))}
115+
{integrationFeatures
116+
.filter(
117+
feature =>
118+
!feature.minimumSupportedVersion ||
119+
feature.minimumSupportedVersion <= activeVersion.label
120+
)
121+
.map((props, idx) => (
122+
<FeatureItem key={idx} {...props} />
123+
))}
107124
</div>
108125
</>
109126
);

src/components/Homepage/Features/FeaturesLists/MonitoringFeatures.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export default function MonitoringFeaturesGrid() {
2727
url: `/${activeVersion.label}/server/administration/monitoring/telegraf`,
2828
description:
2929
"Effortlessly push RavenDB metrics into your dashboards via plugin",
30+
minimumSupportedVersion: "5.2"
3031
},
3132
];
3233

@@ -36,9 +37,15 @@ export default function MonitoringFeaturesGrid() {
3637
Monitoring
3738
</Heading>
3839
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
39-
{monitoringFeatures.map((props, idx) => (
40-
<FeatureItem key={idx} {...props} />
41-
))}
40+
{monitoringFeatures
41+
.filter(
42+
feature =>
43+
!feature.minimumSupportedVersion ||
44+
feature.minimumSupportedVersion <= activeVersion.label
45+
)
46+
.map((props, idx) => (
47+
<FeatureItem key={idx} {...props} />
48+
))}
4249
</div>
4350
</>
4451
);

src/components/Homepage/Features/FeaturesLists/QueryingFeatures.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export default function QueryingFeaturesGrid() {
4343
icon: "global",
4444
url: `/${activeVersion.label}/indexes/querying/spatial`,
4545
description: "Search and sort by geographic location effortlessly",
46+
minimumSupportedVersion: "5.2"
4647
},
4748
];
4849

@@ -52,9 +53,15 @@ export default function QueryingFeaturesGrid() {
5253
Querying
5354
</Heading>
5455
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
55-
{queryingFeatures.map((props, idx) => (
56-
<FeatureItem key={idx} {...props} />
57-
))}
56+
{queryingFeatures
57+
.filter(
58+
feature =>
59+
!feature.minimumSupportedVersion ||
60+
feature.minimumSupportedVersion <= activeVersion.label
61+
)
62+
.map((props, idx) => (
63+
<FeatureItem key={idx} {...props} />
64+
))}
5865
</div>
5966
</>
6067
);

src/typescript/feature.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ export interface Feature {
66
description?: ReactNode;
77
icon: IconName;
88
url: string;
9+
minimumSupportedVersion?: string;
910
}

0 commit comments

Comments
 (0)