--- /dev/null
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ Schema::table('events', function(Blueprint $table) {
+ $table->string('corner')->default('');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('events', function(Blueprint $table) {
+ $table->dropColumn('corner');
+ });
+ }
+};
classNames.push('is-active');
}
+ const style = React.useMemo(() => {
+ if (episode.event && episode.event.corner) {
+ return {
+ backgroundImage: `url(${episode.event.corner})`,
+ };
+ }
+ return null;
+ }, [episode.event && episode.event.corner]);
+
const hasChannels = episode.channels && episode.channels.length;
const hasPlayers = episode.players && episode.players.length;
- return <div className={classNames.join(' ')}>
+ return <div className={classNames.join(' ')} style={style}>
<div className="episode-start me-3 fs-4 text-end">
{t('schedule.startTime', { date: new Date(episode.start) })}
</div>
crew: PropTypes.arrayOf(PropTypes.shape({
})),
event: PropTypes.shape({
+ corner: PropTypes.string,
title: PropTypes.string,
}),
players: PropTypes.arrayOf(PropTypes.shape({
}
.episodes-item {
+ background-size: 6rem auto;
+ background-repeat: no-repeat;
+ background-position: left bottom;
+ min-height: 8rem;
+
&.is-active {
border-color: $success !important;
box-shadow: 0 0 0.25rem 0.25rem $success;