forked from OpenNeo/impress
Optionally use local instance of impress-2020 during development
To activate this, I created a `.env.development` file in my project root, with the following content: ```env IMPRESS_2020_ORIGIN=http://localhost:4000 ``` Then, I started impress-2020 with `yarn dev --port=4000`. Now, the app loads from there, hooray!! It even fixes that obnoxious pet state ID bug that happens when you run against the production db lol
This commit is contained in:
parent
4eb4013eb2
commit
6763e9454e
10 changed files with 31 additions and 6 deletions
|
@ -87,6 +87,11 @@ module ApplicationHelper
|
|||
!@hide_home_link
|
||||
end
|
||||
|
||||
def impress_2020_meta_tag
|
||||
tag 'meta', name: "impress-2020-origin",
|
||||
content: Rails.configuration.impress_2020_origin
|
||||
end
|
||||
|
||||
JAVASCRIPT_LIBRARIES = {
|
||||
:jquery => 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js',
|
||||
:jquery20 => 'https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js',
|
||||
|
|
|
@ -629,7 +629,7 @@ export function buildOutfitUrl(outfitState, options = {}) {
|
|||
const origin =
|
||||
typeof window !== "undefined"
|
||||
? window.location.origin
|
||||
: "https://impress-2020.openneo.net";
|
||||
: "https://impress.openneo.net";
|
||||
|
||||
return origin + buildOutfitPath(outfitState, options);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ import { ApolloClient, createHttpLink, InMemoryCache } from "@apollo/client";
|
|||
import { loadErrorMessages, loadDevMessages } from "@apollo/client/dev";
|
||||
import { createPersistedQueryLink } from "apollo-link-persisted-queries";
|
||||
|
||||
import { buildImpress2020Url } from "./impress-2020-config";
|
||||
|
||||
// Use Apollo's error messages in development.
|
||||
if (process.env["NODE_ENV"] === "development") {
|
||||
loadErrorMessages();
|
||||
|
@ -159,7 +161,7 @@ const typePolicies = {
|
|||
const cache = new InMemoryCache({ typePolicies });
|
||||
|
||||
const httpLink = createHttpLink({
|
||||
uri: "https://impress-2020.openneo.net/api/graphql",
|
||||
uri: buildImpress2020Url("/api/graphql"),
|
||||
});
|
||||
|
||||
const link = createPersistedQueryLink({
|
||||
|
|
|
@ -3,6 +3,7 @@ import gql from "graphql-tag";
|
|||
import { useQuery } from "@apollo/client";
|
||||
import { Box, Flex, Select, Text, useColorModeValue } from "@chakra-ui/react";
|
||||
|
||||
import { buildImpress2020Url } from "../impress-2020-config";
|
||||
import { Delay, logAndCapture, useFetch } from "../util";
|
||||
|
||||
/**
|
||||
|
@ -346,7 +347,7 @@ let cachedResponseForAllValidPetPoses = null;
|
|||
*/
|
||||
export function useAllValidPetPoses() {
|
||||
const networkResponse = useFetch(
|
||||
"https://impress-2020.openneo.net/api/validPetPoses",
|
||||
buildImpress2020Url("/api/validPetPoses"),
|
||||
{
|
||||
responseType: "arrayBuffer",
|
||||
// If we already have globally-cached valids, skip the request.
|
||||
|
|
10
app/javascript/wardrobe-2020/impress-2020-config.js
Normal file
10
app/javascript/wardrobe-2020/impress-2020-config.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
const IMPRESS_2020_ORIGIN = readImpress2020Origin();
|
||||
|
||||
export function buildImpress2020Url(path) {
|
||||
return new URL(path, IMPRESS_2020_ORIGIN).toString();
|
||||
}
|
||||
|
||||
function readImpress2020Origin() {
|
||||
const node = document.querySelector("meta[name=impress-2020-origin]");
|
||||
return node?.content || "https://impress-2020.openneo.net"
|
||||
}
|
|
@ -11,6 +11,8 @@ import loadableLibrary from "@loadable/component";
|
|||
import * as Sentry from "@sentry/react";
|
||||
import { WarningIcon } from "@chakra-ui/icons";
|
||||
|
||||
import { buildImpress2020Url } from "./impress-2020-config";
|
||||
|
||||
import ErrorGrundoImg from "./images/error-grundo.png";
|
||||
import ErrorGrundoImg2x from "./images/error-grundo@2x.png";
|
||||
|
||||
|
@ -141,7 +143,7 @@ export function safeImageUrl(
|
|||
`safeImageUrl could not parse URL: ${urlString}. Returning a placeholder.`,
|
||||
),
|
||||
);
|
||||
return "https://impress-2020.openneo.net/__error__URL-was-not-parseable__";
|
||||
return buildImpress2020Url("/__error__URL-was-not-parseable__");
|
||||
}
|
||||
|
||||
// Rewrite Neopets URLs to their HTTPS equivalents, and additionally to our
|
||||
|
@ -178,7 +180,7 @@ export function safeImageUrl(
|
|||
`upgrade it to HTTPS: ${urlString}. Returning a placeholder.`,
|
||||
),
|
||||
);
|
||||
return "https://impress-2020.openneo.net/__error__URL-was-not-HTTPS__";
|
||||
return buildImpress2020Url("/__error__URL-was-not-HTTPS__");
|
||||
}
|
||||
|
||||
return url.toString();
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
= yield :meta
|
||||
= open_graph_tags
|
||||
= csrf_meta_tag
|
||||
= impress_2020_meta_tag
|
||||
= signed_in_meta_tag
|
||||
- if user_signed_in?
|
||||
= current_user_id_meta_tag
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
= render 'static/analytics'
|
||||
= open_graph_tags
|
||||
= csrf_meta_tags
|
||||
= impress_2020_meta_tag
|
||||
%meta{name: 'dti-current-user-id', content: user_signed_in? ? current_user.id : "null"}
|
||||
%body
|
||||
#wardrobe-2020-root
|
||||
|
|
2
config/initializers/impress_2020.rb
Normal file
2
config/initializers/impress_2020.rb
Normal file
|
@ -0,0 +1,2 @@
|
|||
Rails.configuration.impress_2020_origin =
|
||||
ENV["IMPRESS_2020_ORIGIN"] || "https://impress-2020.openneo.net"
|
|
@ -87,7 +87,8 @@ OpenneoImpressItems::Application.routes.draw do
|
|||
get '/donate' => 'campaigns#current', as: :donate
|
||||
|
||||
# Static pages!
|
||||
get '/terms' => redirect("https://impress-2020.openneo.net/terms"), :as => :terms
|
||||
get '/terms', as: :terms,
|
||||
to: redirect(Rails.configuration.impress_2020_origin + "/terms")
|
||||
|
||||
# Other useful lil things!
|
||||
get '/sitemap.xml' => 'sitemap#index', :as => :sitemap, :format => :xml
|
||||
|
|
Loading…
Reference in a new issue