diff --git a/android/.gitignore b/android/.gitignore
deleted file mode 100644
index 48354a3d..00000000
--- a/android/.gitignore
+++ /dev/null
@@ -1,101 +0,0 @@
-# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore
-
-# Built application files
-*.apk
-*.aar
-*.ap_
-*.aab
-
-# Files for the ART/Dalvik VM
-*.dex
-
-# Java class files
-*.class
-
-# Generated files
-bin/
-gen/
-out/
-# Uncomment the following line in case you need and you don't have the release build type files in your app
-# release/
-
-# Gradle files
-.gradle/
-build/
-
-# Local configuration file (sdk path, etc)
-local.properties
-
-# Proguard folder generated by Eclipse
-proguard/
-
-# Log Files
-*.log
-
-# Android Studio Navigation editor temp files
-.navigation/
-
-# Android Studio captures folder
-captures/
-
-# IntelliJ
-*.iml
-.idea/workspace.xml
-.idea/tasks.xml
-.idea/gradle.xml
-.idea/assetWizardSettings.xml
-.idea/dictionaries
-.idea/libraries
-# Android Studio 3 in .gitignore file.
-.idea/caches
-.idea/modules.xml
-# Comment next line if keeping position of elements in Navigation Editor is relevant for you
-.idea/navEditor.xml
-
-# Keystore files
-# Uncomment the following lines if you do not want to check your keystore files in.
-#*.jks
-#*.keystore
-
-# External native build folder generated in Android Studio 2.2 and later
-.externalNativeBuild
-.cxx/
-
-# Google Services (e.g. APIs or Firebase)
-# google-services.json
-
-# Freeline
-freeline.py
-freeline/
-freeline_project_description.json
-
-# fastlane
-fastlane/report.xml
-fastlane/Preview.html
-fastlane/screenshots
-fastlane/test_output
-fastlane/readme.md
-
-# Version control
-vcs.xml
-
-# lint
-lint/intermediates/
-lint/generated/
-lint/outputs/
-lint/tmp/
-# lint/reports/
-
-# Android Profiling
-*.hprof
-
-# Cordova plugins for Capacitor
-capacitor-cordova-android-plugins
-
-# Copied web assets
-app/src/main/assets/public
-
-# Generated Config files
-app/src/main/assets/capacitor.config.json
-app/src/main/assets/capacitor.plugins.json
-app/src/main/res/xml/config.xml
diff --git a/android/.idea/compiler.xml b/android/.idea/compiler.xml
deleted file mode 100644
index b589d56e..00000000
--- a/android/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/android/.idea/jarRepositories.xml b/android/.idea/jarRepositories.xml
deleted file mode 100644
index d2ce72d1..00000000
--- a/android/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml
deleted file mode 100644
index 8978d23d..00000000
--- a/android/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/android/app/.gitignore b/android/app/.gitignore
deleted file mode 100644
index 043df802..00000000
--- a/android/app/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build/*
-!/build/.npmkeep
diff --git a/android/app/build.gradle b/android/app/build.gradle
deleted file mode 100644
index 41aca533..00000000
--- a/android/app/build.gradle
+++ /dev/null
@@ -1,54 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
- namespace "space.starsailors.app"
- compileSdkVersion rootProject.ext.compileSdkVersion
- defaultConfig {
- applicationId "space.starsailors.app"
- minSdkVersion rootProject.ext.minSdkVersion
- targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- aaptOptions {
- // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
- // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61
- ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~'
- }
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-}
-
-repositories {
- flatDir{
- dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs'
- }
-}
-
-dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
- implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
- implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
- implementation project(':capacitor-android')
- testImplementation "junit:junit:$junitVersion"
- androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
- androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
- implementation project(':capacitor-cordova-android-plugins')
-}
-
-apply from: 'capacitor.build.gradle'
-
-try {
- def servicesJSON = file('google-services.json')
- if (servicesJSON.text) {
- apply plugin: 'com.google.gms.google-services'
- }
-} catch(Exception e) {
- logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
-}
diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
deleted file mode 100644
index fdb4970c..00000000
--- a/android/app/capacitor.build.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
-
-android {
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_17
- targetCompatibility JavaVersion.VERSION_17
- }
-}
-
-apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
-dependencies {
-
-
-}
-
-
-if (hasProperty('postBuildExtras')) {
- postBuildExtras()
-}
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
deleted file mode 100644
index f1b42451..00000000
--- a/android/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
deleted file mode 100644
index f2c2217e..00000000
--- a/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.getcapacitor.myapp;
-
-import static org.junit.Assert.*;
-
-import android.content.Context;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.platform.app.InstrumentationRegistry;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-
- @Test
- public void useAppContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
-
- assertEquals("com.getcapacitor.app", appContext.getPackageName());
- }
-}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 4d7ca380..00000000
--- a/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/java/space/starsailors/app/MainActivity.java b/android/app/src/main/java/space/starsailors/app/MainActivity.java
deleted file mode 100644
index 754d7d9d..00000000
--- a/android/app/src/main/java/space/starsailors/app/MainActivity.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package space.starsailors.app;
-
-import com.getcapacitor.BridgeActivity;
-
-public class MainActivity extends BridgeActivity {}
diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/android/app/src/main/res/drawable-land-hdpi/splash.png
deleted file mode 100644
index e31573b4..00000000
Binary files a/android/app/src/main/res/drawable-land-hdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/android/app/src/main/res/drawable-land-mdpi/splash.png
deleted file mode 100644
index f7a64923..00000000
Binary files a/android/app/src/main/res/drawable-land-mdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/android/app/src/main/res/drawable-land-xhdpi/splash.png
deleted file mode 100644
index 80772550..00000000
Binary files a/android/app/src/main/res/drawable-land-xhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxhdpi/splash.png
deleted file mode 100644
index 14c6c8fe..00000000
Binary files a/android/app/src/main/res/drawable-land-xxhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
deleted file mode 100644
index 244ca250..00000000
Binary files a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-port-hdpi/splash.png b/android/app/src/main/res/drawable-port-hdpi/splash.png
deleted file mode 100644
index 74faaa58..00000000
Binary files a/android/app/src/main/res/drawable-port-hdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-port-mdpi/splash.png b/android/app/src/main/res/drawable-port-mdpi/splash.png
deleted file mode 100644
index e944f4ad..00000000
Binary files a/android/app/src/main/res/drawable-port-mdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-port-xhdpi/splash.png b/android/app/src/main/res/drawable-port-xhdpi/splash.png
deleted file mode 100644
index 564a82ff..00000000
Binary files a/android/app/src/main/res/drawable-port-xhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxhdpi/splash.png
deleted file mode 100644
index bfabe687..00000000
Binary files a/android/app/src/main/res/drawable-port-xxhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
deleted file mode 100644
index 69290712..00000000
Binary files a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100644
index c7bd21db..00000000
--- a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/drawable/ic_launcher_background.xml b/android/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index d5fccc53..00000000
--- a/android/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/res/drawable/splash.png b/android/app/src/main/res/drawable/splash.png
deleted file mode 100644
index f7a64923..00000000
Binary files a/android/app/src/main/res/drawable/splash.png and /dev/null differ
diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index b5ad1387..00000000
--- a/android/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 036d09bc..00000000
--- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index 036d09bc..00000000
--- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index c023e505..00000000
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
deleted file mode 100644
index 2127973b..00000000
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index b441f37d..00000000
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 72905b85..00000000
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
deleted file mode 100644
index 8ed0605c..00000000
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 9502e47a..00000000
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 4d1e0771..00000000
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
deleted file mode 100644
index df0f1588..00000000
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 853db043..00000000
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 6cdf97c1..00000000
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index 2960cbb6..00000000
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index 8e3093a8..00000000
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 46de6e25..00000000
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index d2ea9abe..00000000
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index a40d73e9..00000000
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml
deleted file mode 100644
index c5d5899f..00000000
--- a/android/app/src/main/res/values/ic_launcher_background.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- #FFFFFF
-
\ No newline at end of file
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
deleted file mode 100644
index 8ddd15c5..00000000
--- a/android/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- Star Sailors
- Star Sailors
- space.starsailors.app
- space.starsailors.app
-
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
deleted file mode 100644
index e923daa3..00000000
--- a/android/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/android/app/src/main/res/xml/file_paths.xml b/android/app/src/main/res/xml/file_paths.xml
deleted file mode 100644
index bd0c4d80..00000000
--- a/android/app/src/main/res/xml/file_paths.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
deleted file mode 100644
index 02973278..00000000
--- a/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.getcapacitor.myapp;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
-
- @Test
- public void addition_isCorrect() throws Exception {
- assertEquals(4, 2 + 2);
- }
-}
diff --git a/android/build.gradle b/android/build.gradle
deleted file mode 100644
index 9cc72cb6..00000000
--- a/android/build.gradle
+++ /dev/null
@@ -1,29 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
-
- repositories {
- google()
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:8.0.0'
- classpath 'com.google.gms:google-services:4.3.15'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
-apply from: "variables.gradle"
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
deleted file mode 100644
index 9a5fa872..00000000
--- a/android/capacitor.settings.gradle
+++ /dev/null
@@ -1,3 +0,0 @@
-// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
-include ':capacitor-android'
-project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
diff --git a/android/gradle.properties b/android/gradle.properties
deleted file mode 100644
index 2e87c52f..00000000
--- a/android/gradle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# Project-wide Gradle settings.
-
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx1536m
-
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
-android.useAndroidX=true
diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index ccebba77..00000000
Binary files a/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 761b8f08..00000000
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
-networkTimeout=10000
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/android/gradlew b/android/gradlew
deleted file mode 100755
index 79a61d42..00000000
--- a/android/gradlew
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright © 2015-2021 the original authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-#
-# Gradle start up script for POSIX generated by Gradle.
-#
-# Important for running:
-#
-# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
-# noncompliant, but you have some other compliant shell such as ksh or
-# bash, then to run this script, type that shell name before the whole
-# command line, like:
-#
-# ksh Gradle
-#
-# Busybox and similar reduced shells will NOT work, because this script
-# requires all of these POSIX shell features:
-# * functions;
-# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
-# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
-# * compound commands having a testable exit status, especially «case»;
-# * various built-in commands including «command», «set», and «ulimit».
-#
-# Important for patching:
-#
-# (2) This script targets any POSIX shell, so it avoids extensions provided
-# by Bash, Ksh, etc; in particular arrays are avoided.
-#
-# The "traditional" practice of packing multiple parameters into a
-# space-separated string is a well documented source of bugs and security
-# problems, so this is (mostly) avoided, by progressively accumulating
-# options in "$@", and eventually passing that to Java.
-#
-# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
-# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
-# see the in-line comments for details.
-#
-# There are tweaks for specific operating systems such as AIX, CygWin,
-# Darwin, MinGW, and NonStop.
-#
-# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
-# within the Gradle project.
-#
-# You can find Gradle at https://github.com/gradle/gradle/.
-#
-##############################################################################
-
-# Attempt to set APP_HOME
-
-# Resolve links: $0 may be a link
-app_path=$0
-
-# Need this for daisy-chained symlinks.
-while
- APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
- [ -h "$app_path" ]
-do
- ls=$( ls -ld "$app_path" )
- link=${ls#*' -> '}
- case $link in #(
- /*) app_path=$link ;; #(
- *) app_path=$APP_HOME$link ;;
- esac
-done
-
-# This is normally unused
-# shellcheck disable=SC2034
-APP_BASE_NAME=${0##*/}
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD=maximum
-
-warn () {
- echo "$*"
-} >&2
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-} >&2
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "$( uname )" in #(
- CYGWIN* ) cygwin=true ;; #(
- Darwin* ) darwin=true ;; #(
- MSYS* | MINGW* ) msys=true ;; #(
- NONSTOP* ) nonstop=true ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD=$JAVA_HOME/jre/sh/java
- else
- JAVACMD=$JAVA_HOME/bin/java
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
- case $MAX_FD in #(
- max*)
- # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
- MAX_FD=$( ulimit -H -n ) ||
- warn "Could not query maximum file descriptor limit"
- esac
- case $MAX_FD in #(
- '' | soft) :;; #(
- *)
- # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
- ulimit -n "$MAX_FD" ||
- warn "Could not set maximum file descriptor limit to $MAX_FD"
- esac
-fi
-
-# Collect all arguments for the java command, stacking in reverse order:
-# * args from the command line
-# * the main class name
-# * -classpath
-# * -D...appname settings
-# * --module-path (only if needed)
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if "$cygwin" || "$msys" ; then
- APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
- CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
-
- JAVACMD=$( cygpath --unix "$JAVACMD" )
-
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- for arg do
- if
- case $arg in #(
- -*) false ;; # don't mess with options #(
- /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
- [ -e "$t" ] ;; #(
- *) false ;;
- esac
- then
- arg=$( cygpath --path --ignore --mixed "$arg" )
- fi
- # Roll the args list around exactly as many times as the number of
- # args, so each arg winds up back in the position where it started, but
- # possibly modified.
- #
- # NB: a `for` loop captures its iteration list before it begins, so
- # changing the positional parameters here affects neither the number of
- # iterations, nor the values presented in `arg`.
- shift # remove old arg
- set -- "$@" "$arg" # push replacement arg
- done
-fi
-
-# Collect all arguments for the java command;
-# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-# shell script including quotes and variable substitutions, so put them in
-# double quotes to make sure that they get re-expanded; and
-# * put everything else in single quotes, so that it's not re-expanded.
-
-set -- \
- "-Dorg.gradle.appname=$APP_BASE_NAME" \
- -classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
- "$@"
-
-# Stop when "xargs" is not available.
-if ! command -v xargs >/dev/null 2>&1
-then
- die "xargs is not available"
-fi
-
-# Use "xargs" to parse quoted args.
-#
-# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
-#
-# In Bash we could simply go:
-#
-# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
-# set -- "${ARGS[@]}" "$@"
-#
-# but POSIX shell has neither arrays nor command substitution, so instead we
-# post-process each arg (as a line of input to sed) to backslash-escape any
-# character that might be a shell metacharacter, then use eval to reverse
-# that process (while maintaining the separation between arguments), and wrap
-# the whole thing up as a single "set" statement.
-#
-# This will of course break if any of these variables contains a newline or
-# an unmatched quote.
-#
-
-eval "set -- $(
- printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
- xargs -n1 |
- sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
- tr '\n' ' '
- )" '"$@"'
-
-exec "$JAVACMD" "$@"
diff --git a/android/gradlew.bat b/android/gradlew.bat
deleted file mode 100644
index 6689b85b..00000000
--- a/android/gradlew.bat
+++ /dev/null
@@ -1,92 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%"=="" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
-@rem This is normally unused
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/android/settings.gradle b/android/settings.gradle
deleted file mode 100644
index 3b4431d7..00000000
--- a/android/settings.gradle
+++ /dev/null
@@ -1,5 +0,0 @@
-include ':app'
-include ':capacitor-cordova-android-plugins'
-project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/')
-
-apply from: 'capacitor.settings.gradle'
\ No newline at end of file
diff --git a/android/variables.gradle b/android/variables.gradle
deleted file mode 100644
index 5946adab..00000000
--- a/android/variables.gradle
+++ /dev/null
@@ -1,16 +0,0 @@
-ext {
- minSdkVersion = 22
- compileSdkVersion = 33
- targetSdkVersion = 33
- androidxActivityVersion = '1.7.0'
- androidxAppCompatVersion = '1.6.1'
- androidxCoordinatorLayoutVersion = '1.2.0'
- androidxCoreVersion = '1.10.0'
- androidxFragmentVersion = '1.5.6'
- coreSplashScreenVersion = '1.0.0'
- androidxWebkitVersion = '1.6.1'
- junitVersion = '4.13.2'
- androidxJunitVersion = '1.1.5'
- androidxEspressoCoreVersion = '3.5.1'
- cordovaAndroidVersion = '10.1.1'
-}
\ No newline at end of file
diff --git a/capacitor.config.ts b/capacitor.config.ts
index d003ee65..cea7fe84 100644
--- a/capacitor.config.ts
+++ b/capacitor.config.ts
@@ -9,4 +9,4 @@ const config: CapacitorConfig = {
}
};
-export default config;
+export default config;
\ No newline at end of file
diff --git a/components/Content/ClassificationFeed.tsx b/components/Content/ClassificationFeed.tsx
index 5d46f919..ac94f9d7 100644
--- a/components/Content/ClassificationFeed.tsx
+++ b/components/Content/ClassificationFeed.tsx
@@ -54,10 +54,157 @@ export default function ClassificationFeed() {
}
return (
-
+
{posts.map((post) => (
))}
);
+};
+
+export function ClassificationFeedForIndividualPlanet(planetId) {
+ const supabase: SupabaseClient = useSupabaseClient();
+ const session = useSession();
+
+ const [posts, setPosts] = useState([]);
+ // const [profile, setProfile] = useState(null);
+ const [planetPosts, setPlanetPosts] = useState([]);
+
+ useEffect(() => {
+ fetchPosts();
+ }, []);
+
+ useEffect(() => {
+ if (planetPosts.length > 0) {
+ console.log("Comments: ", planetPosts.flatMap((post) => post.comments));
+ }
+ }, []);
+
+ async function fetchPosts() {
+ try {
+ const postsResponse = await supabase
+ .from("classifications")
+ // .select("id, content, created_at, author, anomaly, basePlanets, profiles(id, avatar_url, full_name, username)")
+ .select("id, created_at, content, anomaly, media, profiles(id, avatar_url, full_name, username)")
+ .eq('anomaly', planetId.planetId.id)
+ .order('created_at', { ascending: false });
+
+ if (postsResponse.error || !postsResponse.data) {
+ console.error("Error fetching posts:", postsResponse.error);
+ return;
+ }
+
+ const postIds = postsResponse.data.map((post) => post.id);
+
+ const commentsResponse = await supabase
+ .from("comments")
+ .select("id, content, created_at, profiles(id, avatar_url, username), post_id")
+ .in("post_id", postIds)
+ .order("created_at", { ascending: true });
+
+ const commentsByPostId = commentsResponse.data.reduce((acc, comment) => {
+ const postId = comment.post_id;
+ if (!acc[postId]) {
+ acc[postId] = [];
+ }
+ acc[postId].push(comment);
+ return acc;
+ }, {});
+
+ const postsWithComments = postsResponse.data.map((post) => ({
+ ...post,
+ comments: commentsByPostId[post.id] || [],
+ }));
+
+ setPosts(postsWithComments);
+ // console.log(posts);
+ } catch (error) {
+ console.error("Error fetching posts:", error.message);
+ }
+ }
+
+ return (
+
+ {posts.map((post) => (
+ <>
+
+
{post.planetId}
+ >
+ ))}
+
+ );
+};
+
+export function ClassificationFeedForIndividualPlanetDuplicates(planetId) {
+ const supabase: SupabaseClient = useSupabaseClient();
+ const session = useSession();
+
+ const [posts, setPosts] = useState([]);
+ // const [profile, setProfile] = useState(null);
+ const [planetPosts, setPlanetPosts] = useState([]);
+
+ useEffect(() => {
+ fetchPosts();
+ }, []);
+
+ useEffect(() => {
+ if (planetPosts.length > 0) {
+ console.log("Comments: ", planetPosts.flatMap((post) => post.comments));
+ }
+ }, []);
+
+ async function fetchPosts() {
+ try {
+ const postsResponse = await supabase
+ .from("posts_duplicates")
+ .select(
+ "id, anomaly, content, created_at, planets2, planetsss(id, temperature), profiles(id, avatar_url, full_name, username)"
+ )
+ // .eq('anomaly', planetId) // 'planets2', planetId
+ .order('created_at', { ascending: false });
+
+ if (postsResponse.error || !postsResponse.data) {
+ console.error("Error fetching posts:", postsResponse.error);
+ return;
+ }
+
+ const postIds = postsResponse.data.map((post) => post.id);
+
+ const commentsResponse = await supabase
+ .from("comments")
+ .select("id, content, created_at, profiles(id, avatar_url, username), post_id")
+ .in("post_id", postIds)
+ .order("created_at", { ascending: true });
+
+ const commentsByPostId = commentsResponse.data.reduce((acc, comment) => {
+ const postId = comment.post_id;
+ if (!acc[postId]) {
+ acc[postId] = [];
+ }
+ acc[postId].push(comment);
+ return acc;
+ }, {});
+
+ const postsWithComments = postsResponse.data.map((post) => ({
+ ...post,
+ comments: commentsByPostId[post.id] || [],
+ }));
+
+ setPosts(postsWithComments);
+ console.log(posts);
+ } catch (error) {
+ console.error("Error fetching posts:", error.message);
+ }
+ }
+
+ return (
+
+ {posts.map((post) => (
+ <>
+
+
{post.planetId}
+ >
+ ))}
+
+ );
};
\ No newline at end of file
diff --git a/components/Content/Classify/AnomalyPostFormCard.tsx b/components/Content/Classify/AnomalyPostFormCard.tsx
new file mode 100644
index 00000000..493359b2
--- /dev/null
+++ b/components/Content/Classify/AnomalyPostFormCard.tsx
@@ -0,0 +1,202 @@
+import { useSession, useSupabaseClient } from "@supabase/auth-helpers-react";
+import { useRouter } from "next/router";
+import { useEffect, useState } from "react";
+import { ClimbingBoxLoader } from "react-spinners";
+
+export default function PostFormCardAnomalyTag({ onPost, planetId }) {
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [content, setContent] = useState('');
+ const profile = session?.user?.id;
+ const [avatar_url, setAvatarUrl] = useState(null);
+ const [uploads, setUploads] = useState([]);
+ const [isUploading, setIsUploading] = useState(false);
+ /* const [userExperience, setUserExperience] = useState();
+ const [hasRequiredItem, setHasRequiredItem] = useState(false); */
+
+ const router = useRouter();
+ const anomalytId = router.query.id;
+
+ // Check if user has items to make post -> not required functionality yet
+
+ // Create the publication
+ async function createPost() {
+ // Will add an identifier to determine the number of posts mentioning the planet, as that will affect the classification rating
+
+ supabase
+ .from("classifications")
+ .insert({
+ author: profile,
+ content,
+ media: uploads,
+ // planets2: planetId,
+ anomaly: planetId, // Set this to multiple anomaly types/foreign key options
+ }).then(response => {
+ if (!response.error) {
+ alert(`Post ${content} created`);
+ setContent('');
+ // setUploads([]);
+ if ( onPost ) {
+ onPost();
+ }
+ }
+ });
+
+ // .then (update user experience/currency)
+ }
+
+ /* Get user avatar & other data
+ useEffect(() => {
+ supabase
+ .from('profiles')
+ .select(`avatatar_url`)
+ .eq("id", profile)
+ .then((result) => {
+ setAvatarUrl(result?.data[0]?.avatatar_url);
+ });
+ }, [session]); */
+
+ // Function to add media to the publication
+ async function addMedia ( e ) {
+ const files = e.target.files;
+ if (files.length > 0) {
+ setIsUploading(true);
+ for (const file of files) {
+ const fileName = Date.now() + session?.user?.id + file.name;
+ const result = await supabase.storage
+ .from('media')
+ .upload(fileName, file);
+
+ if (result.data) {
+ const url = process.env.NEXT_PUBLIC_SUPABASE_URL + '/storage/v1/object/public/media/' + result.data.path;
+ setUploads(prevUploads => [...prevUploads, url]);
+ } else {
+ console.log(result);
+ }
+ }
+ setIsUploading(false);
+ };
+ };
+
+ // Frontend output
+ return (
+
+
+ {/*
+
+
*/}
+
+
+ )
+}
+
+export function PostFormCardAnomalyTagOldSchema({ onPost, planetId }) {
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [content, setContent] = useState('');
+ const profile = session?.user?.id;
+ const [avatar_url, setAvatarUrl] = useState(null);
+ /* const [uploads, setUploads] = useState([]);
+ const [isUploading, setIsUploading] = useState(false);
+ const [userExperience, setUserExperience] = useState();
+ const [hasRequiredItem, setHasRequiredItem] = useState(false); */
+
+ const router = useRouter();
+ const anomalytId = router.query.id;
+
+ // Check if user has items to make post -> not required functionality yet
+
+ // Create the publication
+ async function createPost() {
+ // Will add an identifier to determine the number of posts mentioning the planet, as that will affect the classification rating
+
+ supabase
+ .from("posts_duplicates")
+ .insert({
+ author: profile,
+ content,
+ // media: uploads
+ // planets2: planetId,
+ anomaly: planetId, // Set this to multiple anomaly types/foreign key options
+ }).then(response => {
+ if (!response.error) {
+ alert(`Post ${content} created`);
+ setContent('');
+ // setUploads([]);
+ if ( onPost ) {
+ onPost();
+ }
+ }
+ });
+
+ // .then (update user experience/currency)
+ }
+
+ /* Get user avatar & other data
+ useEffect(() => {
+ supabase
+ .from('profiles')
+ .select(`avatatar_url`)
+ .eq("id", profile)
+ .then((result) => {
+ setAvatarUrl(result?.data[0]?.avatatar_url);
+ });
+ }, [session]); */
+
+ // Function to add media to the publication
+
+ // Frontend output
+ return (
+ <>
+
+ {/*
+
+
*/}
+
+ >
+ )
+}
\ No newline at end of file
diff --git a/components/Content/DiscussCard.tsx b/components/Content/DiscussCard.tsx
index d7f6d75f..d7025624 100644
--- a/components/Content/DiscussCard.tsx
+++ b/components/Content/DiscussCard.tsx
@@ -7,6 +7,7 @@ import { getMetaData } from "../../lib/helper/str.helper";
import { Megaphone, MessagesSquare, Share2 } from "lucide-react";
import Link from "next/link";
import React, { useEffect, useState } from "react";
+import { useSession } from "@supabase/auth-helpers-react";
type TProps = {
id: number;
@@ -17,6 +18,7 @@ type TProps = {
avatar_url: string;
username: string;
};
+ media: string[];
planets2?: string;
comments?: Comment[];
_count: {
@@ -60,6 +62,7 @@ const CardForum: React.FC
= ({
profiles,
planets2,
comments,
+ media,
_count,
}) => {
const [reason, setReason] = useState("");
@@ -68,6 +71,12 @@ const CardForum: React.FC = ({
message: "",
});
+ const session = useSession();
+
+ useEffect(() => {
+ console.log(media);
+ }, [session]);
+
const [showComments, setShowComments] = useState(false);
const { toast } = useToast();
@@ -145,6 +154,15 @@ const CardForum: React.FC = ({
{content}
+
+ {media?.length > 0 && (
+
+ {media?.length > 0 && media.map(media => (
+
+ ))}
+
+ )}
+
diff --git a/components/Content/Planets/Base/IndividualBasePlanet.tsx b/components/Content/Planets/Base/IndividualBasePlanet.tsx
new file mode 100644
index 00000000..098de769
--- /dev/null
+++ b/components/Content/Planets/Base/IndividualBasePlanet.tsx
@@ -0,0 +1,631 @@
+import React, { useState, useEffect } from "react";
+import { useRouter } from "next/router";
+import { useSupabaseClient, useSession } from "@supabase/auth-helpers-react";
+import ContentPlaceholder, { ActivateButton } from "../PlanetData/ContentPlaceholder";
+
+export default function IndividualBasePlanet({ id }: { id: string }) {
+ const router = useRouter();
+
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [planetData, setPlanetData] = useState(null);
+ const [planetPosts, setPlanetPosts] = useState([]);
+ const { id: planetId } = router.query;
+ const [hasPlanetInInventory, setHasPlanetInInventory] = useState(false);
+ const [inventoryPlanetId, setInventoryPlanetId] = useState(
+ null
+ );
+ const [sectors, setSectors] = useState([]);
+
+ const [screenWidth, setScreenWidth] = useState(0);
+ const [showSidebar, setShowSidebar] = useState(true);
+
+ useEffect(() => {
+ const handleResize = () => {
+ setScreenWidth(window.innerWidth);
+ };
+ handleResize();
+ window.addEventListener("resize", handleResize);
+ return () => {
+ window.removeEventListener("resize", handleResize);
+ };
+ }, []);
+
+ useEffect(() => {
+ setShowSidebar(screenWidth >= 800);
+ }, [screenWidth]);
+
+ useEffect(() => {
+ if (planetId) {
+ getPlanetData();
+ fetchPostsForPlanet(id);
+ // fetchSectorsForPlanet();
+ checkUserInventory();
+ }
+ }, [session]);
+
+ const getPlanetData = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("basePlanets")
+ .select("*")
+ .eq("id", planetId)
+ .single();
+
+ if (data) {
+ setPlanetData(data);
+ }
+
+ if (error) {
+ throw error;
+ }
+ } catch (error: any) {
+ console.error(error.message);
+ }
+ };
+
+ async function fetchPostsForPlanet(planetId) {
+ try {
+ const { data: postsData, error: postsError } = await supabase
+ .from("posts_duplicates")
+ .select(
+ "id, content, created_at, media, profiles(id, avatar_url, username)"
+ )
+ .eq("planets2", planetId)
+ .order("created_at", { ascending: false });
+
+ if (postsData) {
+ setPlanetPosts(postsData);
+ }
+
+ if (postsError) {
+ throw postsError;
+ }
+ } catch (error: any) {
+ console.error("Error fetching posts:", error.message);
+ }
+ }
+
+ if (!planetData) {
+ return Loading...
;
+ }
+
+ const { content, avatar_url, type, deepnote, cover } = planetData;
+
+ async function checkUserInventory() {
+ if (!session || !planetId) {
+ return;
+ }
+
+ const { data, error } = await supabase
+ .from("inventoryPLANETS")
+ .select()
+ .eq("planet_id", planetId)
+ .eq("owner_id", session?.user?.id);
+
+ if (error) {
+ console.error("Error checking user inventory:", error);
+ return;
+ }
+
+ if (data.length > 0) {
+ setHasPlanetInInventory(true);
+ setInventoryPlanetId(data[0].id);
+ }
+ }
+
+// async function fetchSectorsForPlanet() {
+// try {
+// const { data, error } = await supabase
+// .from("basePlanetsSECTORS")
+// .select("*");
+
+// setSectors(data);
+
+// if (error) {
+// console.error("Error fetching sectors data:", error.message);
+// return;
+// }
+
+// setSectors(data);
+// console.log(data);
+// } catch (error) {
+// console.error(error);
+// }
+// }
+
+ const rings = [2, 3, 4];
+ const planetSizeMobile = 8; // 8% of the screen size
+ const planetSizeDesktop = 14; // 14% of the screen size
+ const ringSizeFactor = 2.12; // Start rings around 2 times the size of the planet image
+ const ringCount = 3; // Number of rings
+
+ return (
+
+ {/* Background Styles */}
+
+
+
+ {/* {planetPosts?.length > 0 &&
+ planetPosts.map((post) => (
+
+ ))} */}
+
+ {/* Rings */}
+ {[...Array(ringCount)].map((_, index) => (
+
+ {index === 0 && (
+
+ )}
+ {index === 1 && (
+
+ )}
+ {index === 2 && (
+
+ )}
+ {index === 2 && (
+
+ )}
+
+ ))}
+
+
+
+ {/*
{type}
*/}
+ {/*
+
+ */}
+ {/* {hasPlanetInInventory && (
+ <>
+
{inventoryPlanetId}
+ {/*
+
*/}
+ {/* >
+ )} */}
+
+ );
+};
+
+export function IndividualBasePlanetDesktop({ id }: { id: string }) {
+ const router = useRouter();
+
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [planetData, setPlanetData] = useState(null);
+ const [planetPosts, setPlanetPosts] = useState([]);
+ const { id: planetId } = router.query;
+ const [hasPlanetInInventory, setHasPlanetInInventory] = useState(false);
+ const [inventoryPlanetId, setInventoryPlanetId] = useState(
+ null
+ );
+ const [sectors, setSectors] = useState([]);
+
+ const [screenWidth, setScreenWidth] = useState(0);
+ const [showSidebar, setShowSidebar] = useState(true);
+
+ useEffect(() => {
+ const handleResize = () => {
+ setScreenWidth(window.innerWidth);
+ };
+ handleResize();
+ window.addEventListener("resize", handleResize);
+ return () => {
+ window.removeEventListener("resize", handleResize);
+ };
+ }, []);
+
+ useEffect(() => {
+ setShowSidebar(screenWidth >= 800);
+ }, [screenWidth]);
+
+ useEffect(() => {
+ if (planetId) {
+ getPlanetData();
+ fetchPostsForPlanet(id);
+ // fetchSectorsForPlanet();
+ checkUserInventory();
+ }
+ }, [session]);
+
+ const getPlanetData = async () => {
+ try {
+ const { data, error } = await supabase
+ .from("basePlanets")
+ .select("*")
+ .eq("id", planetId)
+ .single();
+
+ if (data) {
+ setPlanetData(data);
+ }
+
+ if (error) {
+ throw error;
+ }
+ } catch (error: any) {
+ console.error(error.message);
+ }
+ };
+
+ async function fetchPostsForPlanet(planetId) {
+ try {
+ const { data: postsData, error: postsError } = await supabase
+ .from("posts_duplicates")
+ .select(
+ "id, content, created_at, media, profiles(id, avatar_url, username)"
+ )
+ .eq("planets2", planetId)
+ .order("created_at", { ascending: false });
+
+ if (postsData) {
+ setPlanetPosts(postsData);
+ }
+
+ if (postsError) {
+ throw postsError;
+ }
+ } catch (error: any) {
+ console.error("Error fetching posts:", error.message);
+ }
+ }
+
+ if (!planetData) {
+ return Loading...
;
+ }
+
+ const { content, avatar_url, type, deepnote, cover } = planetData;
+
+ async function checkUserInventory() {
+ if (!session || !planetId) {
+ return;
+ }
+
+ const { data, error } = await supabase
+ .from("inventoryPLANETS")
+ .select()
+ .eq("planet_id", planetId)
+ .eq("owner_id", session?.user?.id);
+
+ if (error) {
+ console.error("Error checking user inventory:", error);
+ return;
+ }
+
+ if (data.length > 0) {
+ setHasPlanetInInventory(true);
+ setInventoryPlanetId(data[0].id);
+ }
+ }
+
+ // async function fetchSectorsForPlanet() {
+ // try {
+ // const { data, error } = await supabase
+ // .from("basePlanetsSECTORS")
+ // .select("*");
+
+ // setSectors(data);
+
+ // if (error) {
+ // console.error("Error fetching sectors data:", error.message);
+ // return;
+ // }
+
+ // setSectors(data);
+ // console.log(data);
+ // } catch (error) {
+ // console.error(error);
+ // }
+ // }
+
+ const rings = [2, 3, 4];
+ const planetSizeMobile = 8; // 8% of the screen size
+ const planetSizeDesktop = 11;
+ const ringSizeFactor = 1.4; // Start rings around 2 times the size of the planet image
+ const ringCount = 3; // Number of rings
+
+ return (
+
+ {/* Background Styles */}
+
+
+
+ {/* {planetPosts?.length > 0 &&
+ planetPosts.map((post) => (
+
+ ))} */}
+
+ {/* Rings */}
+ {[...Array(ringCount)].map((_, index) => (
+
+ {index === 0 && (
+
+ )}
+ {index === 1 && (
+
+ )}
+ {index === 2 && (
+
+ )}
+
+ ))}
+
+
+
+ {/*
{type}
*/}
+ {/*
+
+ */}
+ {/* {hasPlanetInInventory && (
+ <>
+
{inventoryPlanetId}
+ {/*
+
*/}
+ {/* >
+ )} */}
+
+ );
+};
+
+export function BasePlanetData ({ planetId }) { // Repurpose/rename syntax for generic anomalies/non-base entities
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [basePlanetData, setBasePlanetData] = useState(null);
+
+ useEffect(() => {
+ const fetchPlanetData = async () => {
+ if (!planetId || !planetId.id) {
+ return;
+ }
+
+ try {
+ const { data, error } = await supabase
+ .from('basePlanets')
+ .select(
+ // 'id, content, ticId, type, radius, mass, density, gravity, temperatureEq, temperature, smaxis, orbital_period, classification_status, avatar_url, deepnote' // Add starsystems value & moons, items down the line (including instances of planets)
+
+ )
+ .eq('id', planetId.id);
+
+ if (error) {
+ console.error('Error fetching planet data:', error.message);
+ return;
+ }
+
+ setBasePlanetData(data[0]);
+ } catch (error) {
+ console.error('Error fetching planet data:', error.message);
+ }
+ };
+
+ fetchPlanetData();
+ }, [session, planetId]);
+
+ // Scaffolding for mobile/desktop formats (in current interim state)
+
+ if (!basePlanetData) {
+ return Loading...
;
+ }
+
+ return (
+
+
+
+ )
+}
+
+export function EditableBasePlanetData({ planetId }) {
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [basePlanetData, setBasePlanetData] = useState(null);
+ const [editedData, setEditedData] = useState({});
+ const [isEditing, setIsEditing] = useState(false);
+
+ useEffect(() => {
+ const fetchPlanetData = async () => {
+ if (!planetId || !planetId.id) {
+ return;
+ }
+
+ try {
+ const { data, error } = await supabase
+ .from('basePlanets')
+ .select('*') // Fetch all columns
+ .eq('id', planetId.id);
+
+ if (error) {
+ console.error('Error fetching planet data:', error.message);
+ return;
+ }
+
+ setBasePlanetData(data[0]);
+ } catch (error) {
+ console.error('Error fetching planet data:', error.message);
+ }
+ };
+
+ fetchPlanetData();
+ }, [session, planetId]);
+
+ const handleEditClick = () => {
+ setIsEditing(true);
+ setEditedData({ ...basePlanetData }); // Copy the original data for editing
+ };
+
+ const handleSaveClick = async () => {
+ try {
+ // Update the row in the 'basePlanets' table
+ const { error } = await supabase
+ .from('basePlanets')
+ .update(editedData)
+ .eq('id', planetId.id);
+
+ if (error) {
+ console.error('Error updating planet data:', error.message);
+ return;
+ }
+
+ // Update local state and exit edit mode
+ setBasePlanetData(editedData);
+ setIsEditing(false);
+ } catch (error) {
+ console.error('Error updating planet data:', error.message);
+ }
+ };
+
+ const handleChange = (e) => {
+ // Update the edited data when input values change
+ setEditedData({ ...editedData, [e.target.name]: e.target.value });
+ };
+
+ if (!basePlanetData) {
+ return Loading...
;
+ }
+
+ return (
+
+ {isEditing ? (
+ <>
+ {Object.keys(editedData).map((key) => (
+
+ {key}:
+
+
+ ))}
+
Save
+ >
+ ) : (
+ // View mode: Display current data and edit button
+ <>
+
ID: {basePlanetData.id}
+
Temperature: {basePlanetData.temperature}
+
Edit
+ >
+ )}
+
+ );
+}
\ No newline at end of file
diff --git a/components/Content/Planets/Base/SelectYourPlanet.tsx b/components/Content/Planets/Base/SelectYourPlanet.tsx
new file mode 100644
index 00000000..ecb5b76d
--- /dev/null
+++ b/components/Content/Planets/Base/SelectYourPlanet.tsx
@@ -0,0 +1,17 @@
+import React, { useState, useEffect } from "react";
+import { useSupabaseClient, useSession } from "@supabase/auth-helpers-react";
+
+export default function SelectYourBasePlanet () {
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ async function createPlanet() {
+ supabase
+ .from("inventoryPLANETS")
+ //...
+ }
+
+ return (
+ Test
+ );
+};
\ No newline at end of file
diff --git a/components/Content/Planets/CreatePlanetSector.tsx b/components/Content/Planets/CreatePlanetSector.tsx
new file mode 100644
index 00000000..41519088
--- /dev/null
+++ b/components/Content/Planets/CreatePlanetSector.tsx
@@ -0,0 +1,18 @@
+import React, { useEffect, useState } from "react";
+import { useSupabaseClient, useSession } from "@supabase/auth-helpers-react";
+
+function CreatePlanetSectorComponent ({ planetId }) {
+ const supabase = useSupabaseClient();
+ const session = useSession();
+
+ const [isLoading, setIsLoading] = useState(false);
+
+ const createSector = () => {
+ if (!session) { return; };
+
+ if (!planetId) { return; };
+
+ // Generate random mineral deposits - will later be set in db
+ const depsitCount = Math.floor(Math.random() * 5);
+ }
+}
\ No newline at end of file
diff --git a/components/Content/Planets/GalleryList.tsx b/components/Content/Planets/GalleryList.tsx
index 96ea657d..d1c9c58b 100644
--- a/components/Content/Planets/GalleryList.tsx
+++ b/components/Content/Planets/GalleryList.tsx
@@ -7,7 +7,7 @@ import { GardenSidebar } from "../../Section/Sidebar";
interface Planet {
id: string;
content: string;
- cover: string;
+ avatar_url: string;
}
interface Props {
@@ -16,12 +16,12 @@ interface Props {
}
export function PlanetGalleryCard({ planet, position }: Props) {
- const { id, content, cover } = planet;
+ const { id, content, avatar_url } = planet;
return (
-
+
);
diff --git a/components/Content/Planets/IndividualPlanet.tsx b/components/Content/Planets/IndividualPlanet.tsx
index 76035b4d..6483efa5 100644
--- a/components/Content/Planets/IndividualPlanet.tsx
+++ b/components/Content/Planets/IndividualPlanet.tsx
@@ -50,11 +50,10 @@ export default function IndividualPlanet({ id }: { id: string }) {
if (planetId) {
getPlanetData();
fetchPostsForPlanet(id);
- // fetchSectorsForPlanet(inventoryPlanetId);
- fetchSectorsForPlanetTest();
+ fetchSectorsForPlanet();
checkUserInventory();
}
- });
+ }, [session]);
const getPlanetData = async () => {
try {
@@ -126,29 +125,13 @@ export default function IndividualPlanet({ id }: { id: string }) {
};
};
- async function fetchSectorsForPlanet(planetId: string) {
+ async function fetchSectorsForPlanet() {
try {
const { data, error } = await supabase
.from('planetsssSECTORS')
.select('*')
- .eq('planetId', inventoryPlanetId);
- if (error) {
- console.error('Error fetching sectors data:', error.message);
- return;
- };
-
- setSectors(data);
- } catch (error) {
- console.error(error);
- };
- };
-
- async function fetchSectorsForPlanetTest() {
- try {
- const { data, error } = await supabase
- .from('planetsssSECTORS')
- .select('*')
+ setSectors(data);
if (error) {
console.error('Error fetching sectors data:', error.message);
@@ -239,7 +222,7 @@ export default function IndividualPlanet({ id }: { id: string }) {
{hasPlanetInInventory && (<>
{inventoryPlanetId}
- {/* */}
+
>)}
diff --git a/components/Content/Planets/PlanetData/ContentPlaceholder.tsx b/components/Content/Planets/PlanetData/ContentPlaceholder.tsx
new file mode 100644
index 00000000..fdc5c7c2
--- /dev/null
+++ b/components/Content/Planets/PlanetData/ContentPlaceholder.tsx
@@ -0,0 +1,83 @@
+import { CloudArrowUpIcon, LockClosedIcon, ServerIcon } from '@heroicons/react/20/solid';
+import React, { useState } from 'react';
+
+export default function ContentPlaceholder(planetIdDeepnote) {
+ return (
+
+
Planet type
+
Planet name
+
+ Brief summary
+
+
+
+
+ {/*
*/}
+
+
+
+
+
+
+
+ Push to deploy. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.
+
+
+
+
+
+ SSL certificates. Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo.
+
+
+
+
+
+ Database backups. Ac tincidunt sapien vehicula erat auctor pellentesque rhoncus. Et magna sit morbi lobortis.
+
+
+
+
+
+ Et vitae blandit facilisi magna lacus commodo. Vitae sapien duis odio id et. Id blandit molestie auctor fermentum dignissim. Lacus diam tincidunt ac cursus in vel. Mauris varius vulputate et ultrices hac adipiscing egestas. Iaculis convallis ac tempor et ut. Ac lorem vel integer orci.
+
+
+
+ );
+};
+
+export function ActivateButton(planetIdDeepnote) {
+ const [showContent, setShowContent] = useState(false);
+
+ const handleClick = () => {
+ setShowContent(true);
+ };
+
+ return (
+
+ {/* Your existing content goes here */}
+
+ {/* Button to show ContentPlaceholder */}
+
+ Show Content
+
+
+ {/* Conditionally render ContentPlaceholder */}
+ {showContent && (
+
+
+
+ {/* Close button */}
+ setShowContent(false)}
+ >
+ Close
+
+
+ )}
+
+ );
+ }
\ No newline at end of file
diff --git a/components/Content/PostCard.tsx b/components/Content/PostCard.tsx
index 23b0f2b0..c2444e68 100644
--- a/components/Content/PostCard.tsx
+++ b/components/Content/PostCard.tsx
@@ -2,19 +2,18 @@ import * as React from "react";
import { cn } from "../../lib/uitls";
-const Card = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes
->(({ className, ...props }, ref) => (
-
-));
+const Card = React.forwardRef>(
+ ({ className, ...props }, ref) => (
+
+ )
+);
Card.displayName = "Card";
const CardHeader = React.forwardRef<
diff --git a/components/Section/Navbar.tsx b/components/Section/Navbar.tsx
index ba41069d..6c773ee3 100644
--- a/components/Section/Navbar.tsx
+++ b/components/Section/Navbar.tsx
@@ -1,16 +1,37 @@
import { Avatar, AvatarFallback, AvatarImage } from "../ui/Avatar";
-import { useEffect, useState } from "react";
+import { useEffect, Fragment, useState } from "react";
import Link from "next/link";
import { useSession, useSupabaseClient } from "@supabase/auth-helpers-react";
+import { Dialog, Disclosure, Popover, Transition } from '@headlessui/react'
+import {
+ ArrowPathIcon,
+ Bars3Icon,
+ ChartPieIcon,
+ CursorArrowRaysIcon,
+ FingerPrintIcon,
+ SquaresPlusIcon,
+ XMarkIcon,
+} from '@heroicons/react/24/outline'
+import { ChevronDownIcon, PhoneIcon, PlayCircleIcon } from '@heroicons/react/20/solid';
-const Navbar: React.FC = () => {
+export const NavbarMinimal: React.FC = () => {
const supabase = useSupabaseClient();
const session = useSession();
return (
-
-
Star Sailors
+
+
+
+ Star Sailors
+
+
+ NavItem1
+ NavItem2
+ NavItem3
+ NavItem4
+
+
@@ -21,4 +42,194 @@ const Navbar: React.FC = () => {
);
};
-export default Navbar;
\ No newline at end of file
+const products = [
+ { name: 'Your planets', description: '', href: '/garden', icon: ChartPieIcon },
+ { name: 'Gather', description: '', href: '/gather', icon: CursorArrowRaysIcon },
+ { name: 'Automation', description: '', href: '/auto', icon: FingerPrintIcon },
+]
+const callsToAction = [
+ { name: 'Open Source', href: 'https://github.com/signal-k', icon: PlayCircleIcon },
+ { name: 'Datasets', href: 'https://nodes.desci.com', icon: PhoneIcon },
+]
+
+function classNames(...classes) {
+ return classes.filter(Boolean).join(' ')
+}
+
+export default function Navbar() {
+ const [mobileMenuOpen, setMobileMenuOpen] = useState(false)
+
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index c866ab0e..41eb7117 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
"@fortawesome/react-fontawesome": "^0.2.0",
"@headlessui/react": "^1.7.17",
"@headlessui/tailwindcss": "^0.2.0",
+ "@heroicons/react": "^2.1.1",
"@hookform/resolvers": "^3.3.2",
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-icons": "^1.3.0",
@@ -55,6 +56,7 @@
"react": "^18.2.0",
"react-dom": "18.2.0",
"react-hook-form": "^7.48.2",
+ "react-spinners": "^0.13.8",
"tailwind-merge": "^2.0.0",
"tailwindcss": "^3.2.4",
"tailwindcss-animate": "^1.0.7"
diff --git a/pages/onboarding/select.tsx b/pages/onboarding/select.tsx
new file mode 100644
index 00000000..d24b1f1d
--- /dev/null
+++ b/pages/onboarding/select.tsx
@@ -0,0 +1,30 @@
+import { useSession, useSupabaseClient } from "@supabase/auth-helpers-react";
+import React, { useState } from "react";
+import Layout from "../../components/Section/Layout";
+import SelectYourBasePlanet from "../../components/Content/Planets/Base/SelectYourPlanet";
+import ClassificationFeed from "../../components/Content/ClassificationFeed";
+
+export default function Home() {
+ const session = useSession();
+ const supabase = useSupabaseClient();
+
+ // add an iframe/ref to super.so dashboard
+
+ async function logoutUser () {
+ const { error } = await supabase.auth.signOut()
+ }
+
+ const userId = session?.user?.id;
+
+ if (session) {
+ return (
+
+
+
+ );
+ };
+
+ return (
+ Hello
+ );
+};
\ No newline at end of file
diff --git a/pages/planets/[id].tsx b/pages/planets/[id].tsx
index a2651833..ede5d4fe 100644
--- a/pages/planets/[id].tsx
+++ b/pages/planets/[id].tsx
@@ -1,14 +1,82 @@
import IndividualPlanet from "../../components/Content/Planets/IndividualPlanet";
-import React from "react";
+import React, { useState, useEffect } from "react";
import { useRouter } from "next/router";
+import IndividualBasePlanet, { BasePlanetData, EditableBasePlanetData, IndividualBasePlanetDesktop } from "../../components/Content/Planets/Base/IndividualBasePlanet";
+import Layout, { LayoutNoNav } from "../../components/Section/Layout";
+import { DesktopSidebar } from "../../components/Section/Sidebar";
+import { ClassificationFeedForIndividualPlanet } from "../../components/Content/ClassificationFeed";
+import { ActivateButton } from "../../components/Content/Planets/PlanetData/ContentPlaceholder";
+import PostFormCardAnomalyTag from "../../components/Content/Classify/AnomalyPostFormCard";
+import Navbar from "../../components/Section/Navbar";
export default function PlanetIdPage () {
const router = useRouter();
const { id } = router.query;
+ const [isMobile, setIsMobile] = useState(false);
+
+ useEffect(() => {
+ if (typeof window !== "undefined") {
+ const checkIsMobile = () => {
+ setIsMobile(window.innerWidth <= 768);
+ };
+ checkIsMobile();
+ window.addEventListener("resize", checkIsMobile);
+ return () => {
+ window.removeEventListener("resize", checkIsMobile);
+ };
+ }
+ }, []);
+
if (!id) {
return null;
};
- return ;
-}
\ No newline at end of file
+ if (isMobile) {
+ return (
+
+
+
+ );
+ };
+
+ // For testing/archiving of old layout
+ if (isMobile && !id && !router) {
+ return (
+
+ );
+ }
+
+ return (
+ <>
+
+
+ >
+ );
+};
\ No newline at end of file
diff --git a/pages/tests/placeholder.tsx b/pages/tests/placeholder.tsx
new file mode 100644
index 00000000..5fb62499
--- /dev/null
+++ b/pages/tests/placeholder.tsx
@@ -0,0 +1,10 @@
+import ContentPlaceholder from "../../components/Content/Planets/PlanetData/ContentPlaceholder";
+import Layout from "../../components/Section/Layout";
+
+export default function PlaceholderPageForTestingComponents () {
+ return (
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/public/assets/governance/dashboard.svg b/public/assets/governance/dashboard.svg
index b9ecf4cf..063414ab 100644
--- a/public/assets/governance/dashboard.svg
+++ b/public/assets/governance/dashboard.svg
@@ -1,6 +1,6 @@
-
-
-
-
+
+
+
+
diff --git a/public/assets/governance/logout.svg b/public/assets/governance/logout.svg
index 188cf3b3..847b6fed 100644
--- a/public/assets/governance/logout.svg
+++ b/public/assets/governance/logout.svg
@@ -1,4 +1,4 @@
-
+
diff --git a/public/assets/governance/payment.svg b/public/assets/governance/payment.svg
index b0623289..30336d84 100644
--- a/public/assets/governance/payment.svg
+++ b/public/assets/governance/payment.svg
@@ -1,3 +1,3 @@
-
+
diff --git a/public/assets/governance/profile.svg b/public/assets/governance/profile.svg
index 0558003e..636797c5 100644
--- a/public/assets/governance/profile.svg
+++ b/public/assets/governance/profile.svg
@@ -1,5 +1,5 @@
-
-
-
+
+
+
diff --git a/public/assets/governance/search.svg b/public/assets/governance/search.svg
index 7155623f..7e6bda0c 100644
--- a/public/assets/governance/search.svg
+++ b/public/assets/governance/search.svg
@@ -1,6 +1,6 @@
-
+
diff --git a/public/assets/governance/withdraw.svg b/public/assets/governance/withdraw.svg
index 29d8019b..6770f4bb 100644
--- a/public/assets/governance/withdraw.svg
+++ b/public/assets/governance/withdraw.svg
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/public/assets/ui/planet.svg b/public/assets/ui/planet.svg
index 0e2b5948..0abe35e6 100644
--- a/public/assets/ui/planet.svg
+++ b/public/assets/ui/planet.svg
@@ -3,7 +3,7 @@
-