revert feature flags, minor improvements

This commit is contained in:
Will Freeman
2025-11-04 20:38:09 -07:00
parent 45e2e0b27c
commit 363002e755
9 changed files with 62 additions and 165 deletions
+26 -1
View File
@@ -7,7 +7,7 @@
<v-container class="mb-16">
<!-- Introduction Section -->
<v-row class="mb-12">
<v-row>
<v-col cols="12" md="10" lg="8" class="mx-auto">
<div class="text-center mb-8">
<v-icon size="64" color="var(--df-blue)" class="mb-4">mdi-account-voice</v-icon>
@@ -20,6 +20,31 @@
</v-col>
</v-row>
<!-- Talking Points -->
<v-row class="mb-8">
<v-col cols="12" md="10" lg="8" class="mx-auto">
<v-card
class="pa-4"
elevation="2"
rounded="lg"
hover
href="https://consumerrights.wiki/w/Common_Questions,_Arguments,_%26_Responses_when_discussing_Flock_Surveillance"
target="_blank"
>
<div class="d-flex align-center justify-space-between">
<div class="d-flex align-center">
<v-icon color="primary" class="mr-3 align-self-center">mdi-comment-alert</v-icon>
<div>
<h4 class="text-h6 font-weight-bold mb-1">Talking Points</h4>
<p class="text-body-2 mb-0">Common questions, arguments & responses for discussing surveillance</p>
</div>
</div>
<v-icon color="primary" class="align-self-center">mdi-open-in-new</v-icon>
</div>
</v-card>
</v-col>
</v-row>
<!-- Step 1: One-on-One Meetings -->
<v-row class="mb-12">
<v-col cols="12" md="10" lg="8" class="mx-auto">
+4 -19
View File
@@ -40,8 +40,7 @@
<span v-if="appLinks.android">Get on Android</span>
<span v-else>Android Coming Soon</span>
</v-btn>
<!-- Documentation Link -->
<v-btn
size="large"
variant="text"
@@ -231,11 +230,8 @@
<script setup lang="ts">
import Footer from '@/components/layout/Footer.vue';
import { useFeatureFlags } from '@/composables/useFeatureFlags';
import { ref, computed } from 'vue';
const { flags } = useFeatureFlags();
interface Feature {
id: number;
title: string;
@@ -269,10 +265,10 @@ interface PrivacyPrinciple {
description: string;
}
const appLinks = computed(() => ({
const appLinks = {
android: 'https://play.google.com/store/apps/details?id=me.deflock.deflockapp',
ios: flags.value?.iosApp.enabled ? flags.value.iosApp.appUrl : undefined,
}));
ios: undefined,
}
// App features
const features: Feature[] = [
@@ -492,17 +488,6 @@ const visibleScreenshots = computed(() =>
color: white !important;
}
.doc-btn {
color: white !important;
opacity: 0.9;
transition: all 0.3s ease;
}
.doc-btn:hover {
opacity: 1;
transform: translateY(-2px);
}
.hero-image {
display: flex;
justify-content: center;
+2 -2
View File
@@ -37,7 +37,7 @@
<h2 class="display-2 mb-4">The Dangers of ALPRs</h2>
<p class="px-6">
ALPRs are a serious risk to your privacy and civil liberties. These systems continuously record people's movements, often without a warrant, probable cause, or even reasonable suspicion. Your driving history is rarely confined to the town or city where the cameras are installed. It's typically shared with <router-link to="/what-is-an-alpr#faq-transparency">thousands of other agencies nationwide (secretly)</router-link>. Once the data is out of your community, you have no control over how it's used or what rules apply. And once this kind of tracking infrastructure exists, there are no guarantees it will only be used against criminals.
ALPRs are a serious risk to your privacy and civil liberties. These systems continuously record people's movements without a warrant, probable cause, or even reasonable suspicion. Your driving history is rarely confined to the town or city where the cameras are installed. It's typically shared with <router-link to="/what-is-an-alpr#faq-transparency">thousands of other agencies nationwide (secretly)</router-link>. Once the data is out of your community, you have no control over how it's used or what rules apply.
</p>
<p class="px-6 pt-6">
Learn more about how Flock, the most popular ALPR vendor<sup>1</sup>, is being used in your community on the independent site:
@@ -47,7 +47,7 @@
</a>.
</p>
<footer class="serif text-grey-darken-2 mt-4">
<small><sup>[1]</sup> This claim is based on an OSM Overpass API query conducted on 7/21/2025</small>
<small><sup>[1]</sup> This claim is based on an OSM Overpass API query conducted on 11/04/2025</small>
</footer>
<v-row class="align-center mt-4">
+3 -61
View File
@@ -28,52 +28,6 @@
</v-row>
<v-row justify="center">
<!-- App Card - shown first when enabled -->
<v-col
v-if="isIosAppEnabled"
cols="12"
md="5"
class="pa-4"
>
<div class="app-card-container">
<v-card
class="mx-auto h-100 d-flex flex-column"
elevation="4"
hover
to="/app"
>
<v-card-item class="bg-green-darken-3">
<v-card-title class="text-h5 font-weight-bold text-white">
DeFlock App
</v-card-title>
<v-card-subtitle class="pt-2">
for iOS and Android
</v-card-subtitle>
</v-card-item>
<v-img cover :aspect-ratio="1.5" class="mx-auto mt-5" src="/app-screenshots/df-app.webp" style="width: 90%; border-radius: 8px;" />
<v-card-text class="text-body-1">
<p class="mb-4 sans-serif">The <b>DeFlock App</b> provides a simple mobile interface that's easy to use while walking around.</p>
</v-card-text>
<v-card-actions class="pa-4">
<v-btn
block
color="green-darken-2"
variant="elevated"
size="large"
to="/app"
>
Download App
<v-icon icon="mdi-arrow-right" end></v-icon>
</v-btn>
</v-card-actions>
</v-card>
</div>
</v-col>
<!-- Legacy Editor Card -->
<v-col cols="12" md="5" class="pa-4">
<v-card
class="mx-auto h-100 d-flex flex-column"
@@ -111,17 +65,12 @@
</v-card>
</v-col>
<!-- App Card - shown second when disabled (with coming soon banner) -->
<v-col
v-if="!isIosAppEnabled"
cols="12"
md="5"
class="pa-4"
>
<v-col cols="12" md="5" class="pa-4">
<div class="app-card-container">
<v-card
class="mx-auto h-100 d-flex flex-column app-card-disabled"
elevation="4"
:class="{ 'card-disabled': true }"
>
<v-card-item class="bg-green-darken-3">
<v-card-title class="text-h5 font-weight-bold text-white">
@@ -172,13 +121,6 @@
<script setup lang="ts">
import ALPRVerificationDialog from '@/components/ALPRVerificationDialog.vue';
import { useFeatureFlags } from '@/composables/useFeatureFlags';
import { computed } from 'vue';
const { flags } = useFeatureFlags();
// Computed properties for iOS app state
const isIosAppEnabled = computed(() => flags.value?.iosApp.enabled ?? false);
</script>
<style scoped>
@@ -196,7 +138,7 @@ const isIosAppEnabled = computed(() => flags.value?.iosApp.enabled ?? false);
position: relative;
}
.app-card-disabled {
.card-disabled {
opacity: 0.7;
pointer-events: none;
cursor: not-allowed;
+1 -1
View File
@@ -41,7 +41,7 @@
<v-divider class="my-12" />
<SimilarProjects />
<SimilarProjects id="similar" />
</v-container>
<Footer />
</template>